渗透测试学习—记录一次自测试渗透实战
Posted 罗四强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渗透测试学习—记录一次自测试渗透实战相关的知识,希望对你有一定的参考价值。
写在前面
本文是作者入门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安全后的第一次完整的授权渗透测试实战,还是一些骚操作的,在此分享给大家,如有打码不规范,请勿私自渗透。
以上是关于渗透测试学习—记录一次自测试渗透实战的主要内容,如果未能解决你的问题,请参考以下文章