HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: EvilGod
查看: 2617|回复: 0

more +随机图赏Gallery

社工库查询工具1.1修改版社工库查询工具1.1修改版
可以手机远程控制电脑,手机远程控制手机的超强工具!可以手机远程控制电脑,手机远程控制手机的超强工具!
简单---两步--进暗网--更新之前的简单---两步--进暗网--更新之前的
2017年中旬WEB渗透系列课程-00前言2017年中旬WEB渗透系列课程-00前言
2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
2017年中旬WEB渗透系列课程-27HASH提权2017年中旬WEB渗透系列课程-27HASH提权
御剑后台扫描--自带10多兆后台数据库御剑后台扫描--自带10多兆后台数据库
国内高手浅蓝渗透视频,值得一看。国内高手浅蓝渗透视频,值得一看。
【重要公告】2017年中工作进展及最新课程发布【重要公告】2017年中工作进展及最新课程发布
二期公开课第6节-Linux下的爆破工具+爆破指定IP远程登陆二期公开课第6节-Linux下的爆破工具+爆破指定IP远程登陆

某司内部CTF个人赛Write Up

[复制链接]
EvilGod 发表于 2018-1-9 16:51:58 | 显示全部楼层 |阅读模式
查看: 2617|回复: 0

马上注册,加入HACK80!与我们一起交流。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
                                                                                                                                                                                                                                MISC送分题
这题主要考察wireshark的使用,攻击流量和正常流量的区分
Flag在使用中国菜刀下载文件的文件内容里,如下:

也可以直接使用wireshark直接搜索,如下:

JSJS
JSFUCK编码
解码

隐藏在流量中的flag
这题的关键点是隐藏,提示是I love sangfor!Flag被隐藏在与sangfor相关的域名中。越来
越多的隐蔽数据通讯选择使用DNS协议传输数据,这样可以bypass绝大多数的防火墙,这道题就是个简单的例子。、
数据包中找到这个比较奇怪的域名查询,ZmxhZ3tGbGFnX2lzX2luX0ROU19wYWNrZXRzfQ==.sangfor.com.cn

第一部分明显是base64编码,对其解码即得到flag。
Catch me if you can
这题考察日志总体和各个字段的分析能力,对常见漏洞的理解。
根据题目的意思,在下午4点44之前的web日志中存在漏洞扫描的流量,因此可以确定出攻击者的IP。
漏洞扫描的流量很好分析,从访问的频率和内容,可以确定攻击者的IP是192.168.12.2

所以接下来寻找三个漏洞,只查看这个攻击IP,下午4点44以后的日志就行了,实际的日志量并不多。
第一个漏洞获取了网站管理员密码,最可能的就是SQL注入漏洞,搜索unio或select快就可以找到,存在漏洞的参数为catid,如下:

使用union select读取user数据表的name、和passwd数据。
第二个漏洞获取了服务器系统的密码,最可能的漏洞是目录穿越+任意文件下载/包含,搜索..、%2e%2e之类的即可

对/进行了URL双重编码,读取/etc/shadow文件,攻击时间是26/Sep/2017:16:54:00
用第三个非常著名的漏洞执行了一条NB的命令
这个漏洞是shellshock、即bash破壳漏洞。攻击apache通常在User-Agent字段,执行的命令是poweroff

最后组成flag即可。
WebLogin Please
常规SQL注入
查看源码

user参数存在SQL注入,可以插入SQL语句改变程序运行逻辑
只要让这个

If语句成立即可。所以可以插入union select语句来控制SQL语句,让自己输入的密码等于自己union select出来的密码字符串即可。
比如,输入密码1,经过md5(md5($_POST[pass]).’salt’);处理后就变成了
7fc38fa6340c601aa270670e7c0b0f8a
构造如下的payload:
user=’ union select ‘7fc38fa6340c601aa270670e7c0b0f8a’ from users where ‘a’=’a&pass=1
实际执行的SQL语句是:
select pw from users where user=” union select ‘7fc38fa6340c601aa270670e7c0b0f8a’ from users where ‘a’=’a’
这样就可以使if语句成立,打印出flag
所以密码是任意的,用户名注入的SQL语句与之匹配即可。
sha1()真的安全吗?
查看源代码,发现几个判定条件:


你真的能找到我吗?
查看源代码:

访问后:http://192.168.17.3:8083/Y29uZmln.php

只能试试文件包含:


Up Up Up
这题主要考察基本的渗透能力。
渗透网站的第一步就是信息搜集,访问目标网站并没有直接的信息,如下:

寻找是否存在敏感文件,可以发现robots.txt文件

可以发现两个敏感的目录: admin 和 ThisIsASecretDirectory
访问admin,

提示什么都没有,实际也是什么都没有,不要掉坑里了~
访问ThisIsASecretDirectory

提示找对了,可以进行第二步。发现文件上传,进行漏洞的测试和利用。
此处的上传漏洞,有三个限制:
文件小于10k、
类型是jpg或png (Content-Type)
后缀名不能是php (黑名单)
可以绕过,上传webshell。
具体源码如下:

利用如下:

注意后缀名和content-type即可。
拿到webshell,flag文件在根目录:

PwnFlag 2008

通过checkpasswd函数后可以打印出程序中内置的flag的地址

看passwd函数中的内容,输入密码数组下标和值来对密码进行赋值,之后对比密码数组是否为2008

所以输入上图中的数据可以密码匹配成功打印出flag路径
由于密码数组已经提前都被设置成为0了,因此只设置第0个和第3个元素即可,由于没有对密码数组的下标做严格的判断,可以通过下标越界来给非密码数组的数据进行赋值,栈帧中的返回地址的索引为11,参数的索引为13,将返回地址赋值为printfile的地址,将参数赋值为flagpath的地址,从而可以打印flag文件中的信息,可以输入以下信息:
0 2
11 134514237
13 134514864
3 8
ReverseI am in sangfor
首先需要输入一个key字符串

当输入的字符串为I am in sangfor的时候可以通过第一层校验,之后要求输入flag的值,flag的值与第一层校验输入的字符串(也就是I am in sangfor)经过计算后的值进行比较

因此可以在比较的地址下断点,来获取计算好的数值,需要注意的是本程序采用了反调试机制

可以使用带strongOD的OllyDbg来调试,或者在上述位置修改给al的值为0,即可获取正确的答案
Pop ret go go go

Main函数,这里使用push ret进行函数调用的技巧,实际上是调用了sub_80484FD的函数,此处进行调试可以轻松进入到该函数中
之后要求输入flag的值

Flag的值实际是通过dword_804a030数组和sub_80484FD、main函数代码内容的xor值再进行亦或得出的,软件断点会修改代码中的内容,因此此处是反软件断点调试机制的,需要使用硬件断点或者内存断点来下断,在数据比较的地方下断点即可获取真实的flag值
                                                                       

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2018-1-24 13:45 , Processed in 0.081726 second(s), 24 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.