ctf——writeup

cft线上赛——第四关

地址:http://106.75.26.211:1111

提示:DIV

首先访问目标地址,他给了我一句话。不知道这是个啥,幌子。但并不阻碍我查看源代码。

查看源代码,告诉我们一个文件。——index.php.txt。

访问这个index.php.txt文件。有三个参数flag1,flag2,flag3,反对应三个值。

然后我就想到把这三个参数通过get方式传进去,看看有没有反应。

果然我的猜测,没有问题。参数穿了之后,又给了我们一个提示。是一个压缩包,我们去下载这个文件。访问这个地址:http:106.75.26.211:1111/1chunqiu.zip

下载了之后解压,是这个网站一部分源码。

他有个login.php,这个一般是登录界面。试着访问这个PHP文件。http:106.75.26.211:1111/1chunqiu/login.php

这是登录页面,需要提交车票号,用户名,密码。这个地方会跟数据库发生交互的,我判断这是一道注入题,需要我们通过SQL注入,来获取flag信息的。现在就是找到他的注入点,构造语句获取flag。知道了方向就好办了,开搞。

前面我们获取网页的源码,经过代码审计。发现注入点在login.php里面,然后发现username这个参数会传入数据库,我们需要在username后面构造语句,这里对我们传入的参数还有过滤,他会对一些特殊字符进行转义,我们输入的用于闭合的 "'"会变成"\'"。这里喔想到了有%00'这样是可以成功的。他会在\'加一个\ ,变成\\'。

闭合成功,构造语句,我猜测flag在flag库里。这里由于显示的显示位有限,所以需要用到substr函数慢慢截取出啦。

可以看到最后的flag也被我们截取出来了。


你可能感兴趣的:(ctf——writeup)