只能执行一条 SQL 的情况下,基于 SELECT 的原始查询,能做到最大破坏力的 Inject 是什么

2018-04-21 16:09:26 +08:00
 bromineMai

只能执行一条 SQL 是 SQl 驱动的限制,执行"SELECT XXXX;UPDATE XXX"这种明显的多条 SQL 跑不了。 比如:"SELECT * FROM user WHERE user = "+user; 除了"1=1"和"UNIONS SELECT B"这种导致查到不该查到的数据的攻击外 有没有其他破坏力更大的攻击?

3406 次点击
所在节点    信息安全
5 条回复
tony1016
2018-04-21 16:29:54 +08:00
select load_file('C:\\www\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

懂得👏
pluone
2018-04-21 16:40:40 +08:00
我们遭受过一次注入,注入后的代码是这样的,然后所有的数据库操作全都阻塞了,debug 数据库也不会返回 select * from t_user where id in (12345 and sleep(5)) for update;
bromineMai
2018-04-21 17:38:25 +08:00
ferock
2018-04-21 18:59:20 +08:00
笛卡尔集情况下不走索引锁全表
yw9381
2018-06-17 10:36:59 +08:00
除了注入数据还可以这么操作
1.利用数据库程序提供的 benchmark 函数。拖垮数据库服务器完成 DoS 攻击
2.利用 load_file 函数读取磁盘上的文件
3.利用 select 1 dumpfile '/tmp/1.php'可以向磁盘上写入文件。例如可以通过注射点写入 webshell。或者是写到自启动的目录。写到 crontab 等等来把攻击最大化
4.利用 mysql 的写入文件功能+udf 功能可为 mysql 创建第三方函数。函数功能自定义。所以就可以创建一个执行系统命令的函数。具体你可以了解一下 mysql udf 提权原理
常用的就这几个。当然还有各类奇淫技巧。数据库毕竟还是程序。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX