本文最后更新于:2019 , 八月 19日 星期一, 8:47 晚上

扯淡

在瞎扯淡中,又扯到了该靶场,不死心的基友再次测试二次注入
我们两个再次开启了扯淡模式,然而我的提议牛头不对马嘴(场面气氛一度尴尬)
最后它成功测试出了二次注入,于是我就偷偷摸摸的学习ing

code

  • regCheck.php文件

可以看到此处是经过过滤的,但是二次注入,大多数都是数据在数据库中进行了还原

可以看到确实是还原了

但是此处因为我们是注册时,先把用户名带入到$_session['username']后就写入数据库,并跳转到user.php页面

所以此处并不会造成错误的产生(二次注入)

我们需要重新登录

  • logCheck.php文件

可以看到,我们输入的数据再一次被进行了过滤,最终语句如下:

SELECT * FROM users WHERE user_name = 'a\'' AND user_pass = SHA('123456');

但是,这是可以正常执行的

在执行语句之前,把user_name赋值给$_SESSION['username']
但是并没有进行过滤,带着我们最开始的语句a',跳转到user.php页面

  • user.php

可以看到,这里它使用了$_SESSION['username']进行了查询

由于,他是带着我们恶意构造的语句,也没有进行过滤

所以导致,此处的语句执行错误,并向用户打印Error!

SELECT * FROM users WHERE user_name = 'a''