本文目录一览:
发现XSS漏洞的一般做法有哪些?
关于发现时间,要具体到是检测什么目标了。找google的,和找腾讯的时间肯定不会一样。 至于“你们一般都是如何发现xss漏洞的?” 不同类型的XSS漏洞,可能不尽相同。
1.对于反射型XSS以及一些DOM XSS,一般建议是开发一些自动化的扫描工具进行扫描,并辅以手工分析。 另外一方面,搜索引擎也是快速寻找具有缺陷参数的好办法。
2.对于存储型XSS,
1) 对于单纯的输入-存储-输出点 的情况 (输入与输出点关系:一个地方输入,会有多个地方输出;不同地方输入,同一地方输出。绕了点 T T ...)。常规测试是正向直接输入内容,然后在输出点查看是否未过滤,当然你也可以先大胆假设输出点未过滤,反向寻找在何处进行输入,进而测试。
2)对于富文本,则需要对过滤器进行fuzz测试(人脑+自动化)了,正好乌云drops上有乌乌发了一篇:fuzzing XSS filter
3)第三类,就是一些WEB应用中所出现的DOM-存储型XSS,即输出点的无害内容,会经过js的一些dom操作变得危险(本质上和 第1点里的dom xss成因是一样的)。这一类的挖掘 *** ,个人觉得不太好总结。 其一,需要熟悉WEB应用的功能,其二,知道功能所对应的 *** 代码有哪些,其三,凭直觉猜测程序员会在哪些功能出现可能导致XSS的过滤遗忘或过滤错误(直觉是唬人的,其实就是你知道某些功能会需要某些代码实现,而这些代码常常容易出错),其四,需要有较好的代码阅读跟踪能力( *** 一大坨。。还是蛮难读的.... 有些代码被混淆过,十分不易阅读,就会涉及到如何下断点进行调试的小技巧)。 我想,挖掘这一类的前提可能是需要有不错的前端开发经验,写多了,才会有足够的嗅觉。
其实吧,有时候专门去找漏洞会很累的,大什么怡情,小什么伤身,因此,我们还不如开心的敲敲代码,听听歌,静待生命中那些意外的收获。 这些收获经常来自身边的人发给你的一些事物。
最后,不论如何,基础很重要吧,内力不足,招式再多也没用,反之,草木竹石皆可为剑。
如何搭建一个提供web *** 安全测试的环境
搭建WEB渗透环境。
一般是asp+access+iis等但是利用ASP小旋风就可以搭建一个asp的环境,但是漏洞源码你需要自己寻找。
PHP+MYSQL+阿帕奇,这种黄金三配套你需要拥有一个服务器环境,一般你下载一个XMPP就可以搭建一个阿帕奇+MYSQL的环境,配合这种PHP黄金三件套的环境漏洞平台有,DVWA。
这款测试平台集成了 XSS,SQL,FUZZ,CSRF等常见得漏洞测试
更多详细的漏洞平台参见
web漏洞挖掘和二进制漏洞挖掘哪个容易
首先这类问题建议你去知乎,百度的回答你也看到了。好了,接下来我回答一下这个问题。要说到哪个容易,要看你个人对漏洞的理解。比如说web,想要做到挖掘,你得熟悉甚至精通一个web框架,比如说lamp,linux+apache+mysql+php,你可以搞定相关的一些问题。学习成本你也看到了。另外是对于漏洞的理解,常见的web漏洞,sql注入,xss跨站,csrf跨站请求伪造,文件上传,命令执行等等。继续说0day挖掘,白盒(比如代码审计),灰盒(黑白盒结合),黑盒(Fuzz)。等等。接着来说二进制漏洞,我理解的二进制是,系统级别的漏洞挖掘。常见的比如缓冲区溢出,内存泄露等,影响比如本地权限提升等等。学习成本就是你要学习汇编,C/C++,了解操作系统知识。熟悉常用的比如OD,IDA Pro等调试工具。另外建议学习一门脚本语言,方便编写poc,这里推荐python。
至于难易程度,自己来决定吧。
漏洞可以随便挖吗
今天测试时发现一个任意用户登录漏洞,简单记录一下(em...写得真的很简单的那种!)
登录成功后的一个请求,里面包含了当前登录用户的用户名和user_id:
后面紧接着一个包含敏感信息的数据包,如下:
可以看到返回信息中包含了当前用户的密码MD5,且可以正常解密。更换为其他的user_id:
可以看到,返回了其他user_id的密码,但是,正常情况下,只有在成功登录一个用户后才能获取用户的user_id,所以要想登录他人账户,必须要知道user_id值对应的用户名.....,既然系统会有一个返回密码的数据包,那就可能有其他的敏感信息返回数据包,于是打开burp的hsitory,底部搜索user_id,终于在茫茫数据包中发现了一个接口:
一个请求,通过登录用户名,返回信息包含了该用户名对应的user_id:
通过id获取密码:
不断遍历用户名可以获得更多的user_id,也就可以通过上面的请求获取更多的用户密码MD5,通过解密后的用户名密码即可登录任意用户:
漏洞挖掘类型总结
如果你刚刚好是一个刚刚学完基础的小白,如果你刚刚好没有参加各种培训,完全自学。
那么你的漏洞清单可能是这样的。
暴力破解漏洞
sql注入漏洞
命令执行漏洞
xss漏洞(跨站脚本)
csrf漏洞(跨站伪造请求)
xxe漏洞
文件上传漏洞
文件包含漏洞
各cms的公开漏洞
没错差不多就是这样的。当然也有可能一些没用写到,因人而异。
如果你有幸看到一个大佬的漏洞清单。那么有可能除了上面那些,还多了下面这几项 逻辑漏洞
ssrf漏洞
信息泄露
js文件可能存在的未授权访问
组合漏洞
……
然而这些也只是一部分,不过我不是大佬,不过欢迎大佬补存,下面我就单讲一下我补充的几种漏洞类型吧。
3: 漏洞类型详解
正式开始前插一条,我之前对漏洞的定义有一点点误解,以为只有上面列表上的才是漏洞,其实不然,只要可以给厂商带来损失的全都是漏洞。逻辑漏洞也是基于这条。回顾一下自己的挖掘过程,其实漏掉了很多。
逻辑漏洞
逻辑漏洞也是一个经久不衰的话题,不过逻辑漏洞并不像前面几种漏洞,可以用扫描器去扫,逻辑漏洞目前,据我所知是没有一个扫描器可以敢说自己能扫到逻辑漏洞的。或许有的厂家敢说自己没有一个sql注入,但是没人敢说自己没有逻辑漏洞(我想也没有厂家敢说自己没有sql注入吧,哈哈哈)。而且,由于现在waf,和防火墙的逐渐完善,sql注入,上传等漏洞,也越来越难以查找和利用,而逻辑漏洞则不存在这种问题。
何为逻辑漏洞,就是由于开发者在开发过程中,由于代码逻辑不严,而造成的一系列可以被攻击者加以恶意利用的漏洞。而逻辑漏洞也是一类漏洞的总称。
举个例子最为常见的就是以低价购买任意价格的东西的支付漏洞,或者找回密码流程控制不严格,导致的可以修改任意用户的登陆密码,还有越权,越权查看他人订单,越权查看他人个人信息等等。
当然这只是一部分,我这里也只是一个引子,具体漏洞的原理以及介绍大家可以去自行搜索关键字,有很多大佬的文章就写得比较好,不然我这篇文章就要写个几十页了。一些漏洞详情大家可以去看乌云。
信息泄露
信息泄露漏洞顾名思义就是信息泄露,信息泄露也分好多种,如。
对于源码泄露,大家可以去github上找,很多程序员会把源码开放在github上,甚至有的人用户名密码都不改的,数据库连接密码啊直接存在源码中,当然想我这种菜鸡找到这种源码泄露就直接提交了,有能力的大佬,直接就是一波审计,然后嘿嘿嘿。而对于员工信息泄露,可以在收集信息的时候收集账号,然后放在社工库跑跑,或者记录下来账号用来爆破。
组合漏洞
组合漏洞是一个可以吧低危漏洞变成高危漏洞的一个神奇的东西。比如你找到一个xss漏洞和一个csrf漏洞,如果两个漏洞单独提交,或许是两个低危,或许是两个忽略。但是如果你把你的xss和csrf组合起来就有可能变成一个高危漏洞,打组合拳,key师傅组合拳打的很厉害,向师傅看齐,key师傅给我说,挖到低危不要着急提交,存起来,万一某一天碰见一另一个漏洞,组合一下,就可以一发入魂了。
说个小技巧,如果你想要详细的漏洞列表,可以去多收集几家src的漏洞说明手册,然后去重,就是一份完美的漏洞列表。
4:个人提高漏洞挖掘能力的 ***
这一节讲一下挖掘漏洞应该如何提高和应该有哪些好的习惯。
细心放在之一位,是因为细心真的是非常非常非常重要,我有幸请教过很多大佬成功的秘籍,他们告诉我的之一个词语就是细心,正所谓心细则挖天下。很多漏洞都是需要细心才可以发现,不放过数据包中的任何一个参数,不放过网站的任意一个点,我曾问过团队的小石师傅,如何挖掘那些很多人都挖过的src,这么多人都挖过,一些功能点我还要在测一遍吗。小石师傅并没有给我直接回答,而是讲了他一个漏洞的挖掘经历,那是挖美团的时候,小石师傅直接主站开始挖,并且在个人资料一个很明显的地方,挖到了一个储存xss的高危漏洞。所以,在我们进行漏洞挖掘的时候,不要放弃任何一个可能存在漏洞的地方,每个人都有不同的挖掘方式,网站这么大,总会有几个漏测的地方,并且一个漏洞修复了,谁敢保证,修复完了,就不能再修一个漏洞出来了呢。
耐心
耐心同细心一样,可以说是一对cp。如果你本身就足够信心,那么我想你的耐心也不会差。如果说细心是你漏洞挖掘的利剑,那么耐心就是你的磨刀石,很多时候,碰到一个破站盯几天才能挖到一个漏洞,你坚持下来了就是胜利者,有人说挖洞,也是个运气活,运气好了随随便便就是几个高危,运气不好,几天也挖不到一个。虽然有一定的道理,但是当你的能力足够强,有了自己的套路,想挖漏洞还是轻松加愉快。
会看、会记
会看,会记。这个就简单了,就是要多看多记,多看漏洞详情,多看技术文章,漏洞详情可以在乌云看,还有网上很多人分享的案例,主要是乌云。看完就要记,要让你看的东西真正的成为你的东西,如果你面对一个厂商,还是有无从下手的感觉,就去乌云看漏洞详情,一个一个看,然后把漏洞出现的位置,以及使用的一些技巧记下来,成为属于自己的漏洞挖掘手册,这也是我最近在做的一个事情。还有一些好的文章,好的技巧,或许你一时半会也用不到,但是你要学会记,总有用到的一天。
懂收集
key师傅说过,漏洞挖掘说白了就是一个fuzz的过程,而fuzz最关键的是什么,就是一本高效的字典,没错我们要学会收集字典,想公开的字典有fuzzdb,是一个非常好的fuzz字典合集,当然我们在收集他人字典的同时我们也要自己收集字典,曾经看到一个大佬,搜集了github大量的开发项目的路径,然后组成字典。我也不要求小白可以写程序然后自动收集字典,但是,我们在平时的漏洞挖掘过程中,遇到的一些东西还是要多多的去收集一下,逐步慢慢的形成自己的一本专用字典,绝对可以提高你的漏洞挖掘效率。当你有一本自己收集的字典时,相信你也成为一名大佬了。
勤动手
当你看了大量漏洞,记了大量笔记,这个时候,我相信你最需要的,就是实战,实战是可以把所学所看融会贯通的最快 *** ,没有之一,只有实战可以锻炼自己的挖洞能力,和效率。看到新的漏洞多去搭建环境复现,这也是对能力的一种提升。