ctf VID

这次的ctf的题目如下图:

ctf VID

访问目标连接   http://106.75.26.211:1111

ctf VID

页面上的信息,完全没有给我解题的思路。按照惯例先打开页面源码看看有什么,果然在源码里发现了一个路径

ctf VID

直接访问

ctf VID

发现有3个flag,粗略看了下没有看到flag的值,但仔细观察发现每一个flag在后面都有相对应的值

ctf VID

将flag的值赋给flag,并且将flag与连接服按照顺序连接起来 :flag1=fvhjjihfcv&flag2=gfuyiyhioyf&flag3=yugoiiyhi

需要注意的是要将前面的 .txt去掉,因为txt不能够跳转。

ctf VID

可以看到提示,下载一个1春秋的文件1chunqiu的文件。源码中也没有什么发现,那就直接将1.chunqiu当做地址去访问,居然真的就访问成功了。

ctf VID

下载之后,发现是一部分源代码。既然是源代码,那么基本上可以肯定下一步就是代码审计了。

ctf VID

经过初步的代码审计,可以发现login.php存在注入,先访问1chunqiu下的login.html(因为login.PHP会判断是否登录,如果没有登录就返回到login.html)

ctf VID

  通过查看源码,和多次实验表明,0被转义了。账号和密码随便输入,但是number必须为0,才行。抓包。

ctf VID

  多次尝试,发现可以通过extractvalue报错注入,由于显示位有限,一次显示不完整,所以要截取分成两部分来显示

payload:teste%00'and extractvalue(1,concat(1,(select substr(flag,10,32) from flag),1))#

第一次:

ctf VID

第二次:

ctf VID

拼接起来flag{87f2f55e-9f3b-3761-9eef-4054e88ee51f}

将flag填写到最开始的那个网站,这道题就算完成了。