V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bromineMai
V2EX  ›  信息安全

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

  •  
  •   bromineMai · 2018-04-21 16:09:26 +08:00 · 3613 次点击
    这是一个创建于 2413 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2018-06-17 10:36:59 +08:00
    tony1016
        1
    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
        2
    pluone  
       2018-04-21 16:40:40 +08:00
    我们遭受过一次注入,注入后的代码是这样的,然后所有的数据库操作全都阻塞了,debug 数据库也不会返回 select * from t_user where id in (12345 and sleep(5)) for update;
    bromineMai
        3
    bromineMai  
    OP
       2018-04-21 17:38:25 +08:00
    ferock
        4
    ferock  
       2018-04-21 18:59:20 +08:00 via iPhone
    笛卡尔集情况下不走索引锁全表
    yw9381
        5
    yw9381  
       2018-06-17 10:36:59 +08:00 via Android
    除了注入数据还可以这么操作
    1.利用数据库程序提供的 benchmark 函数。拖垮数据库服务器完成 DoS 攻击
    2.利用 load_file 函数读取磁盘上的文件
    3.利用 select 1 dumpfile '/tmp/1.php'可以向磁盘上写入文件。例如可以通过注射点写入 webshell。或者是写到自启动的目录。写到 crontab 等等来把攻击最大化
    4.利用 mysql 的写入文件功能+udf 功能可为 mysql 创建第三方函数。函数功能自定义。所以就可以创建一个执行系统命令的函数。具体你可以了解一下 mysql udf 提权原理
    常用的就这几个。当然还有各类奇淫技巧。数据库毕竟还是程序。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:12 · PVG 04:12 · LAX 12:12 · JFK 15:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.