“百度杯”CTF比赛 九月场
123
题目类型:web
题目描述:12341234,然后就解开了,打开靶机是一个会员登陆界面:
解题方法:先查看一下网页源码:
这里说用户信息都在user.php里面,然后我们访问一下user.php:
发现并没有任何信息
扫描一下它的目录文件看一下:
扫出了一个user.php和view.php,但是访问user.php没有反应,想到user.php存放用户信息的应该会有备份文件,所以我们访问user.php.bak看一下:
果然这里存在文件泄露,找到了user.php的备份文件,用记事本打开看一下:
里面存放了大量的用户名,想到前面网页源码的给出的提示,登陆名为用户名,密码为对应的用户名加上他的出生年份,这里就需要用bp来抓包进行爆破出它的登陆的用户名和密码:
这里将抓到的包发送到攻击器,注意下面添加攻击点的时候,要在password那里添加两个,因为要爆破出的密码是用户名+出生年份,攻击方式要选择Cluster bomb,因为这里需要多个paylaod集来进行攻击
第一个payload集将user.php.bak文件里面的内容导进去,paylaod方式选择列表的方式
第二个paylaod集,paylaod方式选择Copy other paylaod方式,然后下面就有一个选项框,让你选择copy的paylaod集,这里我们选择cope第一个用户名的paylaod,因为密码是由用户名+出生年份构造的
第三个payload集是年份,选择的paylaod方式是Number数字方式,开始从1980-到2000年,step步长为1
开始攻击:
得到两个长度特殊的,查看一下:
登陆成功,说明这两个用户名和密码是正确的,我们登陆一下看看
登陆成功了,但是没有任何显示,查看一下网页源码:
发现注释里面是个文件上传的代码,用F12在查看器里面把注释符号去掉看一下:
去掉注释符号,就得到一个文件上传的界面,我们随便上传一个文件,然后用bp抓包看一下:
我们上传一个.png文件看一下:
文件名不合法,再换成jpg和gif也是返回文件名不合法
我们上传一个.php文件看一下:
发现不行,只能写成.png.php看一下:
这里说不能包含php,就感觉这里可能不是真正的文件上传,并不是传马连菜刀,是要构造合法文件名上传到服务器成为可执行文件就可以,但是这里php被过滤了
最后上网查了一下如何绕过php,发现php还有许多别名:php3,php4,php5,pht,phtml,phps,这些都快被解析成php
逐一尝试,发现pht可以绕过,然后得到一个view.php,这里刚好对应了开头扫描目录扫出来的view.php
我们访问view.php:
得到一个file?想到可能是文件读取或者文件包含,猜测是?file=传参,我们随便输入一个?file=1看一下:
得到一个flag字符,我们构造?file=flag看一下:
还是一样,说明flag被过滤了,我们用双写来试试可不可以绕过去:
?file=flflagag
成功,拿到flag
flag{06628453-d67a-410f-84d8-becf9dcab5e1}
总结:这是一道出的比较好的web题,包含了文件泄露,爆破,文件上传绕过,传参关键字绕过包含的内容还是比较多,特别是它的爆破攻击点那里要在password那里添加两个攻击点,以及F12在查看器里面删除注释符号,上传php被过滤如何用其他别名来绕过以达到解析php的效果,和最后flag的关键字绕过,真是一道出的比较好的web题
标签:文件,用户名,一下,CTF,123,user,php,paylaod,百度 From: https://www.cnblogs.com/xyweiwen/p/18144304