SQLI-libs 9

前几天发了个1-8关的过关记录,想了下如果全写到一篇里太多了,第9关从这篇开始更新

mark一篇文章有关sql中的常用语法

第九关&第十关

有点意思,这题题目是时间盲注,因为无论是否输入正确的id,都会回显“you are in”。
百度了一下时间盲注,基本原理大概就是利用sleep()函数,感觉和布尔盲注的区别就是,布尔盲注是页面回显有正确和错误,然而时间盲注只有一种回显,但是可以将bool值转化为是否延迟,如果true就执行sleep()函数,然后根据请求返回的时间来判断结果。
可能用到的函数:

sleep()            //延迟,参数为时间,单位为秒,函数正常执行会返回0,被中断返回1
if(exp1,exp2,exp3) //如果exp1为true,则执行并返回exp2,否则执行并返回exp3

可参考:SQL基于时间的盲注过程

第十一关

这题是一个登录页面,用post方法传递参数unamepasswd,本来以为直接用--注释掉后面的语句就可以登录,但是自己在MySQL中试了很多次,发现很多很迷的地方,总结如下

关于注释符

mysql的注释符

-- 注释(注意'--'后面要有空格)
#注释
//注释
/*注释*/

这一题经过测试如果只使用--注释而不闭合后面的单引号是会报错的,必须闭合所有的单引号而且使sql语句不能有语法错误;但是如果使用#作为注释符,就不用考虑闭合后面的单引号
然后就是正常的注入流程了,经过测试可以联合查询暴库
可参考sqli-lab教程——1-35通关(实际上并没有到35关…)

PHP中@的作用:at符号(@)在PHP中用作错误控制操作符。当表达式附加@符号时,将忽略该表达式可能生成的错误消息。如果启用了track_errors功能,则表达式生成的错误消息将保存在变量$php_errormsg中。每个错误都会覆盖此变量。

第十二关

和第十一关基本一样,根据报错信息推测出闭合方式是"),然后剩下还是联合查询暴库

第十三关

单引号报错之后可以推测闭合方式是'),注释方式可使用#,然后返回页面只有正确和错误,应该是bool盲注了,不知道问什么,用Python脚本发送post请求会不成功,连用hackbar进行postdata都不能成功,只能手工注…

第十四关

闭合方式",其他和第十三关相同

第十五关

未完待续…

原创文章 10 获赞 1 访问量 323

猜你喜欢

转载自blog.csdn.net/qq_43871200/article/details/104989164