sqli11
第11关: POST - Error based - Single quotes - String
// POST-基于错误-单引号-字符型
1.进入11关,界面如下,这是一个登陆界面
2.随便输入一个用户名,密码结果显示错误,我们在随便输入的用户名后加一个单引号试一下
3.爆出了的信息有点少,我们再在账号后面加一个双引号试试
我们从2,3步大致可推出sql的语句为:select username,password from users where username='用户名' and password='密码' limit 0,1
4.知道sql的语句了,我们可以构造一个万能密码
select username,password from users where username='adafd' or 1=1 # ' and password=' ' limit 0,1
5.利用报错函数爆出数据库,下面介绍一下要用到的函数
extractvalue() :对XML文档进行查询的函数
语法:extractvalue(目标xml文档,xml路径)
第二个参数 xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
6.我们用bp抓一下我们刚才的万能密码post包
7.使用extractvalue函数