一次完整的渗透测试流程
Posted 小韩韩啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次完整的渗透测试流程相关的知识,希望对你有一定的参考价值。
目录
有兴趣学习web安全的小伙伴可以戳我一下: 戳一下
渗透测试
渗透测试并没有一个标准的定义,一般通用的说法是,渗透测试是指一家单位授权另一家单位或个人模拟攻击者入侵来评估计算机系统安全的行为,过程中被授权单位工程师或攻击者个人利用自己所掌握的知识对授权系统进行渗透,发现存在的安全隐患及漏洞,然后编写报告交付给最开始授权单位。最开始授权单位根据提供的报告,安排相对应的开发人员或运维人员进行漏洞修复。
这里需要注意,随着2017年6月1日开始实施的《网络安全法》,根本意义上定义了我们如果是未经过授权许可的渗透测试行为均属于违法行为。如果你不知道具体网络安全法包含了哪些?你可以移步至《网络安全法》。
渗透测试分类
渗透测试也没有严格的分类方式,但根据实际应用,普遍认同的集中分类方法有,黑盒测试及白盒测试
黑盒测试:
- 黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透
白盒测试:
- 白盒测试就是在知道目标网站源码和其他一些网络结构环境等信息的情况下对其进行渗透,从代码角度来看,有点类似于代码分析
渗透测试流程
渗透测试的基本流程主要分为以下几步:
-
明确目标
-
信息收集
-
漏洞探测(挖掘)
-
漏洞验证(利用)
-
提升权限
-
清楚痕迹
-
编写渗透测试报告
明确目标:
项目开始前,会由销售或项目经理与客户对接,确认所需要做渗透测试的系统目标地址或范围,主要是确定需要渗透资产范围;确定规则,如怎么去渗透;确定需求,如客户需要达到一个什么样的效果。
信息收集:
1.如果客户授权了单个目标,我们需要收集的信息包括如下:
操作系统信息
端口信息
脚本语言信息
中间件信息
组件信息
。。。等指纹信息
2.目标范围信息收集
我们的信息收集结果会直接影响到我们渗透测试最终的结果产出,所以在过程中我们需要足够了解我们所需要进行渗透测试的目标范围企业。详细了解信息收集可以移步至——渗透测试-信息收集
漏洞探测:
在做完信息收集后,我们可以针对信息收集到的目标系统进行漏洞探测,过程中我们可以使用到一些漏洞扫描工具作为辅助,这里我们仅是发现漏洞并不可以确认漏洞的实际危害(比如一些条件限制),在探测这步即考验到渗透测试人员的知识面,如:
web漏洞:
SQL注入漏洞——SQL注入漏洞
xss漏洞——xss跨站脚本攻击
上传漏洞——渗透测试-上传漏洞
CSRF漏洞——渗透测试-CSRF漏洞
命令执行漏洞——渗透测试-命令执行
点击劫持漏洞——点击劫持
端口扫描——nmap基础使用
等等其他漏洞
扫描器:
AWVS——AWVS基础使用
漏洞利用:
在确认漏洞存在后,需要给客户验证该漏洞危害,不同的漏洞所需要展示危害不同,过程中可以使用到一些工具的辅助,如下
SQL注入漏洞——SQLMAP使用
XSS漏洞——BEEF基础使用
抓包工具——burpsuite使用
在渗透测试过程中,一般越权,文件上传等众多漏洞我们是需要使用到burpsuite进行分析的,故此同学们可以关注下。
权限提升
在漏洞利用后在获取到webshell以后,一般权限很低,所以我们需要提权,可以戳一下windows权限提升、linux权限提升、mysql权限提升
如果不想进行提权操作,仅需要内网流量的话可以代理目标流量进行转发,可以戳一下:内网端口映射与转发
清理痕迹
当我们达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马;但是大家千万不要干这些事,这些都是违法的,所以具体的痕迹清理,大家注意,主要为日志。
编写渗透测试报告
在完成了渗透测试之后,我们就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击!
我们做的这一切的一切都是为了营造一个更安全更可信任的网络环境,大家切记不要利用本篇文章进行违法犯罪行为!
渗透测试学习—记录一次自测试渗透实战
写在前面
本文是作者入门web安全后的第一次完整的授权渗透测试实战,因为最近在总结自己学习与挖掘到的漏,无意中翻到了这篇渗透测试报告,想当初我的这篇渗透测试报告是被评为优秀渗透测试报告的,故在此重新整了一下,分享一下自己的思路与骚操作给大家。总的来说,就是一些web安全常见漏的挖掘,还有就是逻辑漏里自己发现的一些骚操作。如有不正确之处,敬请大家斧正。
WEB安全
一、XSS
首先,当我们拿到一个网站,最常见的操作就是进入网站的主页,查看网站有没有框框,xss最常见的测试方法就是“见框就插”,果不其然,我们在搜索框一“插”,就“插”出来了,虽然只是一个xss,但是这是我挖到的第一个啊,内心还是有些小激动的。本来框框还可以检查是否存在SQL注入,但是不巧的是,此处并没有。
以下是具体的操作:
1.进入url:
http://www.xxxx.com/?act=search&keyword=%27%22%28%29%3Cacx%3E%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E
2.位置是在搜索框,这里存在xss
3.写入自己准备好的xss验证的payload:
%27%22%28%29%3Cacx%3E%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E
4.证明在这里看哦:
与xss有关的,我们就挖掘到这里,下面我们进行下一处的挖掘。
二、弱
接下来,我们来到了用户登录模块,因为如果不进行用户登录的话,我们拥有的操作空间和权限是非常小的,而且登录页面,也是多发的页面,比如弱口令啊、短信轰炸啊、验证码可绕过啊等等,可惜的是在这里,我只验证成功了弱令,具体操作如下:
首先,我们来观察此网站的用户名,巧的是我们发现这个网站的用户名具有一致性,那么我们可以进行什么操作呢,没错,在此处我们可以利用神器burpsuite进行爆破,我们可以枚举网站有注册的用户,这其实也是一个用户名枚举洞,只是我把它和弱口令洞放在一起了,我们当然还可以用枚举出来的用户名,来爆破它们信息,下面是具体操作:
这是我爆破出来的用户名,username=mb12202,password=123456,在这吐槽一句,弱口令洞是一个永远也修复不完的通用洞
我们登陆以后,可以来查看用户的具体信息,可以看到手机号、IP、收货地址、绑定的QQ和微信等等,下面是手机号和IP信息,不过我们是看不到用户手机号的中间的四位数字的,但是这是我们可以进行一定的操作来查看的哦,具体操作请各位看官继续往下面看
下面是收货地址的信息
在这个功能处我们可以进行如下操作:
1、因为我们知道了mb12202的帐号也就是昵称还有,而且这个网站设置的是昵称和手机号都能够用相同的进行登陆,所以我们可以在此处爆破mb12202用户的手机号的中间4位,即可得到完整手机号
得到手机号的中间4位为3829
2、我们之前在用户的个人信息里的收件地址里还看到了另外的一个手机号码,我们在这里猜测,这个手机号也是一个注册用户,然后下一步我们就要开始爆破mb12202用户收件地址里的手机号1722xxxx607的,username=1722xxxx607,password=123456,果不其然,这个电话号码,果然也是一个注册用户,真是踏破铁鞋无觅处,得来全不费功夫啊
与弱口令有关的漏,我们就挖掘到这里,下面我们进行下一处漏的挖掘。
三、url重定向,可进行
既然我们挖掘上一处漏的时候已经掏出了我们的神器burpsuite,那么我们肯定不能把它抛弃,而是继续进行骚操作啊。依稀还记得当初挖到这个漏的时候是非常兴奋的,因为这个漏不容易被发现,所以,我们在漏的挖掘中一定要细,细到不能再细为止。
大体思路如下,首先在存在漏页面进行抓包,放包之后就会进入到如下图所示的请求包里,我们修改请求包里的ap_id参数,第一次放包后是别的数字,请记住一定要修改为378,如果修改成别的数字是没用的,放包后进入到响应包页面,对响应包进行修改,可以插入恶意图片以及链接,放包后,就会出现在网站里,用户点击后就会进行跳转。
下面是具体操作:
1.可插入图片的url:http://www.xxxx.com/index.php本网站有很多,在此仅举一例
2.修改请求包中的ap_id为378
3.修改响应包,插入恶意的图片以及链接
4.插入图片到网站中
5.用户点图片进入简书登录页面,可钓鱼
6.用户点击后,在根目录生成usernames.txt文档
7.查为123.123
与url重定向有关的,我们就挖掘到这里,下面我们进行下一处的挖掘。
逻辑
一、网站存在商品在未前扣除库存量的订单生成的逻辑
接下来我们就要进入到逻辑漏洞的挖掘环节了,大家有没有一点小期待啊,好了,不扯了,下面我们进入正题。逻辑是很多的工具所无法发现的,大部分都是手工挖掘出来的。
经过测试我们会发现,本网站内商品存在两项,总体思路如下:
第一项,在提交订单时,后端未校验用户购买的数量和前端提交的数量是否一致;
第二项,者可以通过更改购买某一商品,这一产品的最大数量,创建订单提交支付请求后,使攻者即使在未完成订单支付前,也会扣除商品库存,使恶意用户可以无限制下单,导致他人无法参与购买这一产品,恶意用户也可以将所有商品的库存修改为0,使其他用户购买时,将显示库存不足,无法正常购买。
具体操作如下:洞url位于生成订单逻辑处http://www.xxxxx.com/item-100480.html
1.首先查看商品首页,库存为101件
2.点击立即,进入我的购物车页面,查看购买订单
3.点击提交订单,抓取数据包,修改数量为101,放包
4.查看我的订单:
5.查看商城首页的这一商品,显示这一商品已无库存:
至此,网站存在商品在未支付前扣除库存量的订单生成的逻辑,验证成功,我们进入下一项漏洞的挖掘。
二、此网站存在代金券无上限获取拥有与使用的逻辑
挖掘这项,也需要我们大家非常细心,要有一定的骚操作,才会发现这项。
URL:https://www.xxxx.com/shop/index.php?act=pointvoucher&op=index
1.打开电脑版的网站,我们可以看到代金券的数量绕过了最大领取数量为50的限制,此时拥有量为62张
2.此时查看电脑版,代金券确实有最大兑换数量为50的限制,但没有限制用户拥有量,证明此处有bug
3.使用电脑版网站购买商品使用代券
商品库存为19件
4.那我们就买19次,使用19张代金券
查看当前商品已无库存
5.查看电脑版有19个订单
6.电脑端查看代金券还剩43张,62-19=43
7.重新在购物车获取7张代金券(本网站设置的是可以在购物车内获取代金券,只是代金券的最大数量限制为50),现在有50张,43+7=50
8.退掉那19张订单
查看当前商品又有19个库存
9.查看电脑版已经没有订单了
10.电脑端查看代金券已有69张,50+19=69
而最初的代金券是62张,多了7张,69-62=7,这7张就是当代金券消耗到43张时,在购物车重新领取的7张代金券。
由此推断,当继续购买69件商品时,已有代金券数量将为0,(69-69=0),此时可以在购物车继续领取50张代金券,代金券数量为50,(0+50=50),然后再退掉那69张订单,此时代金券数量将变为119(50+69=119),同理,恶意者可以无上限拥有代金券。
结束语
至此,这次授权的渗透测试实战已结束,不论这篇文章里蕴含的技术含量怎么样,这都是作者刚入门web安全后的第一次完整的授权渗透测试实战,还是一些骚操作的,在此分享给大家,如有打码不规范,请勿私自渗透。
以上是关于一次完整的渗透测试流程的主要内容,如果未能解决你的问题,请参考以下文章