场景:WEB后台爆破
后台爆破很多人都会选择最经典的模式,如字典爆破,挖掘未授权访问漏洞,挖掘验证码漏洞(未刷新,验证码识别)等方法。
猜想:
1、后台程序是采用MD5加密的方式,并且验证密码跟被验证密码都是从PHP的MD5加密处理的 (PHP5~7存在此BUG),例如:
原理:
程序在处理哈希字符串时,会利用”不等于 或 等于 来对哈希值进行比较,它把每一个以 0E 开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以0E开头的,那么PHP就会认为他们相等。那么在爆破的时候 字典加入一个MD5加密之后以0e开头的明文密码即可。
2、前台有注册,是否跟后台用的是同一个SESSION文件,例如:
这个SESSION 我们可以假设。程序员在开发中 注册一个会员那么就会添加一条数据到数据库里。 登录验证成功后会写入一个session,那么后台验证中判断session他可能是这样写的。
if($_SESSION['user']){
returnTrue;
}
这个设计缺陷 可以假设 他的session跟前台用户的session用的是同一个。从而导致一个未授权访问。(前台登录之后访问后台) 当然也可以说成是越权。因为我们从一 个注册会员登录写入了session 从而导致有访问后台的权限 PS:具体情况得看代码怎么写。
以上方法 我们可以幻想很多很多种漏洞。列如这个
我们又可以这样猜想:system的键名是用来判断权限。1则为管理员 0则为普通用户 在前台有个注册功能,那么我们又联想到了一个MYSQL的一个溢出漏洞my.ini。
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
比如一个表的结构是这样的:
createtableadmin(
username varchar(10) notnull,
passwd varchar(10) notnull);
可以看到username跟passwd的字节为10,但是my.ini设置成
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
的话,就算超出也会添加成功,比如:
insertintoadminvalues(‘1234567891 2’,'123456');
他不会插入“1234567891 2 ”而是插 ”1234567891“ 因为指针到1的时候字节就等于10了。因此我们注册会员的时候,admin、空格、空格、空格、空格、空格、XX,然后这样就会注册到了admin。
切回话题,我们又可以很离谱的这样猜想。前台注册用户用的数据库跟后台是同一个数据表字段。那么我们可以从前台注册然后登录后台。(这种我还是碰到过的)
当然思路还是有很多很多的,得看你去怎么去猜想他的代码了
场景:WEB扫描器忽略的功能
扫描器相信大家都是用过的,比如一些知名的扫描器:BURP、AppScan 等,但是扫描器也有不够人性化的时候,例如爬虫扫描。
这样我们就以扫描为主题:
1、表单破解,有验证码
2、扫描values型SQL注入
3、存储XSS误报多
4、被隐藏的某种存在高危漏洞的功能(列如 存在命令执行 没有任何响应的情况下 扫描器判断不出来)
在这里公布一个自写AWVS的扫描规则库(扫描命令执行无响应):
规则库目录说明:(放到规定目录即可)
文件名:cmd.script
解释:扫描过程中 每个参数都会添加
例如: | curl http://xx.cc/ 然后发送请求 i_url 变量是当前扫描的YRL
var targetUrl = new TURL(scanURL.url);
// 获取当前的方案 也就是获取爬虫到的当前请求
var scheme = getCurrentScheme();
// 创建一个HTTP的工作(要求)
var http = new THTTPJob();
// 在新创建的作业中填充计划 将当前请求添加到HTTP
schem