最近在准备找工作,有一家公司给我发来了这样一条消息,于是有了这篇文章.
因本文是bypass成功后,才写的可能会缺少一些图.(耗费本菜鸡半天时间,因为之前都是mysql搞的多,还有就是sqlmap一把梭.差点把传统手艺都丢了.)
涉及知识点实操-SQL注入
https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015060916565800001&pk_campaign=weixin-wemedia
本实验以PHP和mysql为环境,简单展示了SQL的发生原理和利用过程,通过显错注入和盲注的对比,更直观展现注入的不同利用方法。点击阅读原文实操起来!
大意了,没有闪拿到目标后,我就迫不及待的直接打开
打开地址一看是报错的,我还以为任务是需要通过信息收集拿到shell,最后再拿数据.我还在想开局就送个信息泄漏?
最后折腾一番之后发现没什么突破口.回来再看之前的地址发现又能访问了.
大意了,没有闪
最后看到界面是这样的(能打开完全靠运气,特别是在晚上)
看到这个界面后,我就知道,原来是想测老夫的sql注入? 我当时心想不会用sqlmap一把梭就进去了吧!
注入点识别随即我就先用'试试注入点
/1.aspx?id=1%27
继续试试and 1=1
/1.aspx?id=1%20%27and%201=1
好小子,居然有狗小小的一条就能难到我?打开burp,开始手注
bypass宝塔+安全狗直接把请求改为post,试试垃圾数据填充能不能bypass
生成垃圾数据
好小子,还有个宝塔waf,看来垃圾数据填充已经不好用了
再试试分块传输bypass
还是一样(对分块传输没什么研究,和一些数据库特性结合应该还是可以用的,不是本文的重点)
接下来,开始fuzz
试试不带select
发现可以,继续试试,user和db_name()
这说明宝塔和狗都是对select 后面跟值进行拦截
我们继续试试联合查询union
不出所料还是一样,这两兄弟好搭档啊,换着来.由于本文重点是在学习手注入和bypass下面开始bypass,我这边打算写个payload混淆工具bypass
在写工具前我们得知道bypass的常用手法有哪些吧?
我这边大概整理了有如下几种
利用服务器特性
利用数据库特性
利用WAF特性
所以为了更好的bypass,我们就得了解对这些特性有一定的了解,因为我的当前目标是iis+aspx,那我们就得了解一下iis和mssql特性来进行bypass
iis特性
下面摘自 bypass大佬的waf攻防实战笔记
1、%特性(ASP+IIS)
在asp+iis的环境中存在一个特性,就是特殊符号%,在该环境下当们我输入s%elect的时候,在WAF层可能解析出来
的结果就是s%elect,但是在iis+asp的环境的时候,解析出来的结果为select。
Ps.此处猜测可能是iis下asp.dll解析时候的问题,aspx+iis的环境就没有这个特性。
2、%u特性(asp+iis和aspx+iis)
Iis服务器支持对于unicode的解析,例如我们对于select中的字符进行unicode编码,可以得到如下的
s%u006c%u0006ect ,这种字符在IIS接收到之后会被转换为select,但是对于WAF层,可能接收到的内容还是
s%u006c%u0006ect,这样就会形成bypass的可能。
3、另类%u特性(ASP+IIS)
该漏洞主要利用的是unicode在iis解析之后会被转换成multibyte,但是转换的过程中可能出现: 多个widechar会有