支付漏洞、绕过短信验证、绕过URL限制、绕过APP手势密码、DDOS攻击防御

25.【转载】挖洞技巧:支付漏洞之总结
支付漏洞一直以来就是是高风险,对企业来说危害很大,对用户来说同样危害也大。就比如我用他人账户进行消费,这也属于支付漏洞中的越权问题。那么支付漏洞一般存在在哪些方面呢,根据名字就知道,凡是涉及购买、资金等方面的功能处就有可能存在支付问题。本文章将分类来进行讲述支付漏洞当中的那些思路。

首先说下支付问题的思路

0x01 修改支付价格
在支付当中,购买商品一般分为三步骤:订购、确认信息、付款。

那么这个修改价格具体是修改哪一步时的价格呢?在我看来,你可以在这三个步骤当中的随便一个步骤进行修改价格测试,如果前面两步有验证机制,那么你可在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验,那么问题就会存在,其修改的金额值你可以尝试小数目或者尝试负数。

这里我找到了相关例子:

①:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=8236

②:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=21478

③:http://www.anquan.us/static/bugs/wooyun-2016-0174748.html

0x02 修改支付状态
这个问题我隐约的遇到过,之前在找相关资料的时候发现了一篇文章讲的是修改支付状态为已支付状态这样的思路,然后勾起了我的回想,这个问题是没有对支付状态的值跟实际订单支付状态进行校验,导致点击支付时抓包修改决定支付或未支付的参数为支付状态的值从而达到支付成功。

这里是一个例子,虽然其文章作者测试失败了,但我觉得思路是非常不错的,例子:

①:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=28151

0x03 修改购买数量
在支付的过程中,数量也同时决定着价格,比如:1个数量商品对应的是100,2个数据就是200,那么当你修改这个值数量值为负数时,那么其金额也会变为负数,最后就会导致支付问题的产生。

0x04 修改附属值
这里是我自己想的一个词,比如在很多购买的时候都可以利用积分或者优惠劵等等进行代替金额付款,那么就容易存在问题。在这里我把附属值分为几类进行讲述。

①:修改优惠劵金额

优惠劵其基本都是优惠一半,一般用优惠劵进行消费一般出现在第二个步骤当中:确认购买信息,在这个步骤页面当中,你可以选择相关优惠劵,然后直接修改金额大于或等于商品的价格就可以,或者直接修改其为负值进行尝试,最后进行支付,如果对这点没有加以验证,那么问题就会产生,直接支付成功。

②:修改优惠劵金额及业务逻辑问题

可能你看到这个标题会想到,你不是上一个讲的就是这个修改优惠劵金额的问题嘛?为什么还要再讲一遍这个?请继续看!

之前遇到过这个漏洞,这个漏洞也是逻辑问题导致了成功利用,同样在是在第二部确认购买信息当中有可选择优惠劵进行支付,但是,当你修改其优惠劵值为任意值或负值想要支付的时候,会回显支付失败,或者金额有误等一些提示,可能这时很多白帽子会很失望然后就会去其它点找问题了,但当你找到个人中心,点击订单详情,如果存在这个逻辑问题,那么此时在你刚刚修改优惠劵金额后点击下一步支付的时候,其实这时候就已经产生了订单了,你在订单详情内就可以看到支付金额为0,因为你刚刚修改了优惠劵金额嘛,然后你点击支付就可以支付成功。

当然,这里还要说下小技巧,有可能会支付失败,但是如果你找到的这个问题是一个一般业务分站点,如果有自带的一个钱包功能,那么你就可以利用这个只带的钱包功能去支付这个订单,而不要利用其它支付类型,那么就可以支付成功!

③:无限爆破使用优惠劵

有些厂商不注意优惠劵过期时间,这个时候就可以用抓包改包的方法,通过修改ID验证信息来重复领取优惠劵

相关例子:http://wooyun.jozxing.cc/static/bugs/wooyun-2013-033166.html

              http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0107744.html

④:修改积分金额

有些网站有积分,比如你消费多少,评论多少就可以拥有一定的积分数量,这个积分可以在你付款的时候进行折扣其订单金额,如果这个没有做好积分金额的校验,那么当你在支付当中选择用积分为账户减一些金额的时候,可以抓包修改其积分金额为任意数或负金额,然后可0元支付成功。

相关例子:http://www.anquan.us/static/bugs/wooyun-2015-0139556.html

              http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0135459.html

0x05 修改支付接口
比如一些网站支持很多种支付,比如自家的支付工具,第三方的支付工具,然后每个支付接口值不一样,如果逻辑设计不当,当我随便选择一个点击支付时进行抓包,然后修改其支付接口为一个不存在的接口,如果没做好不存在接口相关处理,那么此时就会支付成功。

0x06 多重替换支付
以前好像也看到过相关的例子,首先去产生两个订单,这两个订单商品是不一样的,其价格不一样,如果服务端没有做好这相关的验证,那么在支付的过程当中抓包,修改其订单值为另一个订单值,最后支付,这时就可以用订单一的支付价格买到订单而的商品。

0x07 重复支付
这个其实只是支付当中的一个别类,但是这个思路新颖,所以我就列了出来,比如一些交易市场有一类似于试用牌子或者其它,这个试用牌子可以依靠签到获得,而这个牌子的作用可以去试用一些商品,在你进行试用的时候会扣掉你的试用牌子,当你试用完成或者主动取消试用时,试用牌子会返回到账户当中,你知道,签到得到的牌子肯定很少,且如果想试用好一点的商品那么牌子的数量就尤为重要了。

这里的问题就是如果没有进行对订单多重提交的校验,那么就可导致无限制刷牌子,比如,你试用时抓包,然后你每次试用都会产生一个订单号,然后利用刚抓到的数据包进行批量提交,你就可以看到每次提交的订单号不一样,然后这时你再看订单可以看到同一个商品的无数订单,但试用牌子数只扣了你第一个试验时的牌子数,那么这时你申请批量退出试用,那么这么多订单,每退一个就会退相应的牌子数量到账户当中,这就构成了无限制刷得问题。

0x08 最小额支付
在很多白帽子测试支付的漏洞时候,修改的金额往往都是0.01等或者负数,我想说这很容易错失掉一些潜在的支付问题,我就深有体会,在挖掘支付漏洞的过程当中,就遇到过,直到第三次再一次检测时才发现,比如一些网站有金币或者积分什么就相当于支付可以用这些支付,那么在充值的时候,比如:10元对应的积分值为100、50对应的是5000、100对应的是10000。

这个问题如果你在充值时进行修改其支付金额为负数或者0.01等是会显示支付失败的,但是如果你修改其金额为1.00,那么支付就会成功,也就用1元购买到任意值得积分数量了,这是为什么呢?

其实你在测试过程当中细心点就可以很好发现的,这里最低就是1元,1元对应100积分,而你如果修改为0.01,那么对应的积分就是空值了,所以会显示失败,而当你修改为1元,那么1元这个支付接口是存在的,其后面积分数为其它金额的积分数,然后跳转过去支付就会以1元购买到比它多得多的积分数量,也可以是任意积分值。

0x09 值为最大值支付问题
以前也是看到过相关的例子,一些网站比如你购买商品,这里有2个思路修改值,1是直接修改支付金额值为最大值,比如999999999,或者修改附属值,如优惠卷,积分等为999999999,如果这里逻辑设计有问题,那么其支付金额会变为0。

0x10 越权支付
这个问题很早之前有过,现在可能很少存在这类问题,在支付当中会出现当前用户的ID,比如:username=XXXXX,如果没有加以验证,其支付也是一次性支付没有要求输入密码什么的机制,那么就可以修改这个用户ID为其它用户ID,达到用其他用户的账号进行支付你的商品。

0x11 无限制试用
一些网站的一些商品,比如云系列产品支持试用,试用时期一般为7天或者30天,一个账户只能试用一次,试用期间不能再试用,但如果这个试用接口会做好分配那么很容易导致问题的发生。

这也是我遇到过的例子,比如:在支付的时候它URL后面的支付接口是3,而试用接口是4,那么此时你已经使用过了,复制下确认试用时的URL,修改后面的支付接口为3,那么此时就会调用购买支付接口,但是由于你本身这个产品就是试用的,其相应值绑定了这个试用商品,那么金额就肯定是0,那么最后点击支付,你就可以看到支付成功,试用成功,又重复试用了一次,然后他们的试用时间会累加在一起,这就导致了可无限制购买任何产品了。

0x12 修改优惠价
比如一些商品有优惠价,优惠多少多少,那么在支付时抓包,修改这个优惠价就可造成支付问题的产生。

支付问题的相关分析文章:

①:http://wooyun.jozxing.cc/static/drops/papers-345.html

以下是不常见思路
0x01 多线程并发问题
可能很多白帽子知道,也有可能不知道,或者听说过,但是没有实际挖掘过,那么我相信,这个思路会让你们有新的挖掘方向了。

现在可能还有一些大厂商存在该问题,多线程并发问题就是没有实时的处理各种状态所导致的问题,之前挖掘过刷钱问题,就是利用该思路,比如很多平台有自家的钱包,而这个钱包是一个迷你钱包,这个钱包作用也仅是用于这当前一个业务平台网站,在提现时,没有任何验证码或者校验机制,只要输入体现金额就可以提现,并且是秒到账,如果什么负数,修改金额都测试过了都不行,那么你就可以试试多线程并发问题,提现时抓包,比如我现在钱包内有0.1元,那么按理说每提0.01可以体现10次,也就是发送10次进程,但是利用这个问题可以达到多发现几次成功的进程,提现时抓包,然后把数据包发送到BurpSuite工具的Intruder当中,进行批量发送18次,然后可以看到成功的提现到了12次。

这里我贴出相关证明图片:

这里是从0开始到11截止,我账户内只有0.1 而这里体现了0.12 也就是提现的进程为12次,369为提现成功,349为提现失败的长度值,从这里就可以看出这个问题的危害了,当然此时账户的金额肯定是为负的了,如果把这个提现金额变大,那么这多提现的金额可不是闹着玩的。

当然,多线程也可以在其它功能处进行测试,比如我之前讲到的试用商品问题,就可以通过多线程进行多几次的使用,比如利用积分总换礼品,一个账户只能进行总换一次,利用这个问题,可以多几次总换,一些转账功能,提现功能,购买功能等等很多。

多线程并发的相关分析文章:http://wooyun.jozxing.cc/static/drops/papers-831.html

0x02 支付问题挖掘技巧
如果你习惯用BurpSuite工具,那么在你测试抓包的时候通常请求包都有很多,比如有3个请求包,第一个请求包是一个干扰数据包,第二个是一个图片加载的数据包,第三个可能才是支付相关的数据包,所以有时候要细心,不要认为抓不到,如果你用的是其它工具,那么可以查看整个提交过程,所以很容易看到提交的各种数据包,在BurpSuite当中你可以通过Target这模块进行分析,这个模块会有你测试时相关的数据包。

强力连接:

https://www.secpulse.com/archives/67080.html

http://wooyun.jozxing.cc/?qqdrsign=04d2b
26.【转载】挖洞技巧:绕过短信&邮箱轰炸限制以及后续
邮箱轰炸可能对企业来说危害很小,但对用户危害很大。短信轰炸相比邮箱轰炸,带来的危害涉及到企业和用户。

那么这些问题都存在在哪些方面呢?

①:登录处

②:注册处

③:找回密码处

④:绑定处

⑤:活动领取处

⑥:独特功能处

⑦:反馈处

等等一些,不一一列举出来。以上都是常见的可能会出现问题的地方。

短信轰炸和邮箱轰炸所带来的影响除了这些,其实还会带来探测用户信息的问题以及钓鱼问题。进入正文!

首先说下绕过轰炸限制的思路
0x01 利用空格绕过短信&邮箱轰炸限制
比如一般参数是这样的:mobile1=XXXXXX 或 [email protected] 一般都会有5次机会,如果发送次数超过了5次,那么一时间或1天才能继续发送,但当在手机号的前面或者后面加上空格的时候就又可以发送5次,而且短信或者邮箱是收的到的,修改过的参数如:mobile1= XXXXXX ,在前面加上空格,每加一个空格就会有反复发送短信或邮件的机会。

0x02 利用调用接口绕过短信&邮箱轰炸限制
比如这样的参数:terminal=01&Mobile=XXXXXXX,前面的接口是调用短信发送内容的接口,比如terminal参数值为01是调用注册成功的短信提示,02是调用密码重置成功的短信提示,03是调用注册成功的短信提示等等,当修改这个接口值时,也就达到了短信轰炸或邮箱轰炸的目的。

0x03 修改Cookie值绕过短信&邮箱轰炸限制
有些可能不是直接验证手机号来判断次数,而是验证当前Cookie,利用当前Cookie来进行验证发送次数的话,很容易造成绕过,这里如果验证的不是登录状态的Cookie而是普通状态下的Cookie的话就可以通过修改Cookie达到绕过验证。

我找到了类似的例子:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=27614

0x04 修改IP绕过短信&邮箱轰炸限制
有些同样是验证当前IP的,如果当前IP短时间内获取短信或邮件频繁或者达到一定次数的话就会出现限制,那么就可以利用修改IP或者代理IP来进行绕过限制。

0x05 利用大小写绕过邮箱轰炸限制
前面说到了关于加空格的绕过限制,邮箱也可以用,但还有一种方式可以绕过邮箱轰炸限制,那就是通过修改大小写,通过修改邮箱后面字母的大小写就可绕过限制,比如参数是这样的:[email protected] 当次数达到限制时,随便修改一个字母为大写:[email protected]就可绕过限制。

0x06 修改返回值绕过短信&邮箱轰炸限制
比如发送成功后返回值是success,发送失败的返回值是error,那么当达到次数后,可以通过修改返回值为正确的返回值:success,从而绕过限制,达到发送成功的目的。

0x07 利用不同账户达到短信&邮箱轰炸
这也算是一个绕过问题,主要也是验证不当,比如一个账户可以获取5次,那么我换一个账户又可以获取5次,没有其它验证,那么可导致大规模的短信轰炸,虽然轰炸次数少,但是确实是大规模的,其本质也是会对企业和用户造成影响。

以上是绕过限制下的短信&邮箱轰炸

以下是直接造成短信&邮箱轰炸的思路

直接造成短信&邮箱轰炸的思路

0x01 利用登录处达到短信轰炸
比如一些网站支持手机动态验证码登录,如果这里没有网站验证码的话,通过抓包批量发送很有可能造成危害,如果有网站验证码的话,这里就又涉及到一个新的思路了,也就是绕过网站验证码的问题,首先通过自己的账户进行短信登录,获取正确的网站验证码以及正确的手机验证码,点击登录的时候抓包,这里我用burpsuite,发送到Repeater模式,然后修改手机号为需要轰炸的手机号,然后重放,你会发现,手机验证码发送成功了,这涉及到的就是网站验证码绕过问题,步骤大概为输入正确账户正确网站验证码以及等等,登录时抓包,然后利用这个登录成功的数据包,修改值就可达到绕过轰炸现在问题。

有些网站在登录处需要手机验证,这里大概出现验证的位置为三处:

第一处:直接在登录处显示获取验证码

第二处:当点击登录时会在登录处弹出验证

第三处:当点击登录后跳转至一个专门验证的页面

这些点有可能会出现轰炸的危害,可直接抓包进行轰炸。

0x02 利用注册处&找回密码处进行轰炸
在注册和找回密码处,往往都需要验证码,如果没有加以验证码以及其它的限制的话,有可能会造成轰炸问题。

0x03 利用修改处进行轰炸
在个人管理界面修改手机号或者修改邮箱的时候都需要验证码,如果此时这里处理不当,也可造成轰炸问题。

0x04 利用反馈处进行轰炸
一些平台支持反馈或者投诉等等,手机号或者邮箱都是自定义,也就是说可以随便输入,在我以前挖掘的过程当中,该问题利用起来虽然很有限制,但是本质上还是存在一点问题。一般这些反馈功能都不会验证提交次数,那么可以进行批量的提交,而手机号或邮箱可以指定需要轰炸的对象,当后台审核后就会进行短信或者邮箱通知,此时当你提交多少次就会通知多少次,那么也就造成了危害。

0x05 利用某些活动页面进行轰炸
比如一些活动或者刚上线的广告,可以领取某某东西,要求获取手机验证码进行领取,一般这里最容易存在问题了,如果最后活动下线了而这个发送接口还存在的话,那么就可被更隐藏性的利用了。

0x06 利用独特功能进行轰炸
比如个人后台可以添加企业资料或者什么的,然后里面会要求输入手机号,当添加成功了会有短信通知,此时如果重复添加,那么添加一次通知一次也就造成了短信轰炸的危害了。

以上就是挖掘短信轰炸&邮箱轰炸的思路了。

但细心的你可能会注意到,在登录处或者找回密码以及其它处,如果你输入的手机号或者邮箱是不存在的话它的返回信息就会返回不存在,如果存在就进行下一步操作,那么也就是说短信&邮箱轰炸也会造成用户信息被爆破的危害以及其它的危害。

短信&邮箱轰炸问题所引发的其它危害

爆破潜在用户

比如在注册处输入手机号或邮箱,它会判断该手机号或邮箱是否存在,如果存在返回通过并执行下一步的操作,如果不存在就返回不存在的信息提示,那么在这里可以批量进行爆破潜在的用户已经注册过的手机号或邮箱号,然后可被利用来进行撞库!

钓鱼问题

有些发送手机号的接口或者邮箱接口当发送时抓包,如果未过滤好,那么要发送的信息会在请求包当中,也就是说可以自定义要发送的内容,而且用的是官方的账户发送,那么很容易造成钓鱼问题,比如修改发送内容批量发送给很多用户,而修改的内容可以为钓鱼网站或其它等等,如果网站存在URL跳转问题,那么利用钓鱼在利用这个自定义内容发送问题,那么极有可能造成更具有信任性的钓鱼危害。

强力连接:https://www.secpulse.com/archives/67077.html
27.【转载】挖洞技巧:如何绕过URL限制
大家对URL任意跳转都肯定了解,也知道他的危害,这里我就不细说了,过~

大家遇到的肯定都是很多基于这样的跳转格式:http://www.xxx.xxx/xxx?xxx=http://www.xxx.xxx/xxxxx

基本的思路大家就是直接替换后面的URL来检测是否存在任意URL跳转,如果不存在,就直接返回到它自己的域名,如果存在,就跳转到你指定的URL。

这里我讲述我所知道的所以小点。

0x01 利用问号绕过限制
利用问号,这是一个特性,利用问号可以成功绕过URL限制。

比如:http://www.aaa.com/acb?Url=http://login.aaa.com 这是一个跳转链接,跳转到它的二级域名下,那么这个问号放哪里可以绕过呢?其实就是放到它自身的域名前面也就是你添加的想要跳转的域名的后面,如:http://www.aaa.com/acb?Url=http://test.com?login.aaa.com 。那么,它其实是会跳转到这个test.com域名下,这个域名是我想要跳转的任意域名,而后面的它自身域名一定要带上,不带上就无法辅助用问号?这个特性来跳转到指定域名了,而跳转后,问号和问号后面的内容会变为这样:http://www.test.com/?login.aaa.com

0x02 利用反斜杠和正斜杠绕过限制
这个是我自己研究出来的,不知道是否网上有人说过。

比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同样是在它本身域名钱加上正斜杠,然后正斜杠前面跟上你想跳转的域名地址

如:http://www.aaa.com/acb?Url=http://test.com/login.aaa.com

反斜杠有三种思路

两个反斜杠绕过方法

比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同样是在它本身域名钱加上两个反斜杠,然后两个反斜杠前面跟上你想跳转的域名地址

如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com

一个反斜杠绕过方法

如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com

另一种思路,一个反斜杠一个点

利用.这样的格式,也就是一个反斜杠加一个点来跳过限制,

如:http://www.aaa.com/acb?Url=http://test.com.login.aaa.com

0x03 利用@绕过URL限制
如果你用这方法在火狐里进行跳转,会有弹窗提示,在其它游览器则没有。

如:http://www.aaa.com/acb?Url=http://[email protected] 后面的test.com就是要跳转到的域名,前面的域名都是用来辅助以绕过限制的

0x04 利用白名单缺陷绕过限制
有的域名白名单限制是不全的,比如如果想利用一个跳转,而这个跳转是通用,在这个公司网站很多子域名等都可以跳转,那么你买个域名也不算贵对吧,为什么这么说呢,这个问题就是白名单限制不当,比如,当跳转的域名包含这个网站下的所有域名,比如:http://www.aaa.com/acb?Url=http://login.aaa.com,这个login.aaa.com也可以改成aaa.com同样可以跳转对吧,因为白名单里只要有包含这个域名就直接成功跳转。那么当我在这个域名前面加上如testaaa.com,白名单里会检查是否包含aaa.com这个域名,包含,然后直接跳转,而并没有检查这个域名的整个

信息,然后可以利用这个问题,直接注册一个testaaa.com这个域名就可以利用这个跳转。

0x05 多重验证&跳转绕过限制
现在很多网站都有多重验证,比如你登陆账户后会出现另一个验证页面,输入手机验证码进行验证,此时这上面的URL很可能存在任意跳转的问题。

多重跳转的问题导致可绕过URL限制

比如http://www.aaa.com/acb?Url=http://login.aaa.com/acb?url=http://login.aaa.com。当然,还有多重的,这个结构的多重跳转你修改最后面的URL就可以达到任意URL跳转,中间的URL就没必要动了。

0x06 点击触发达到绕过URL跳转限制
比如很多登陆页面的地方,其URL是一个跳转的URL,如:http://www.aaa.com/acb?Url=http://test.com。你直接修改了后面为任意URL,但是还是停留在原地,似乎没什么问题,但是,当你输入账号和密码后点击登陆按钮后,就会触发跳转,当然,这个账户和密码不一定要对的,随便都可以,但得视系统而定吧。这个我遇到了很多,比如

你修改了域名,然后点击登陆,登陆成功后便可触发跳转,这也是一个比较隐蔽的绕过URL限制的跳转。

0x07 利用xip.io绕过
这个我还没有在测试中应用过,其请求是http://www.127.0.0.1.xip.io 这个绕过是在SSRF场景中的绕过,比如SSRF你要读取内网地址,一般都做了限制,可以尝试用这方法进行绕过限制,从而访问到内网。

另外一点,URL跳转涉及的安全问题大家常见的就是钓鱼,那么利用这个思路也可达成一个钓鱼问题,如,http://www.qq.com.220.181.57.217.xip.io 当你访问qq这个域名时,其实这个链接已经被解析到后面这个ip地址上了,那么实际访问的就是后面这个IP地址。

0x08 利用超链接绕过可信站点限制
比如一个URL,它是可以直接跳转的,但是一般测试跳转时大家习惯用www.baidu.com或qq.com这样的可信站点进行测试,但是有些网站是可以跳转这些网站的,只要是可信站点且常用,基本都可以跳转,那么这就属于正常的业务逻辑了。难道就这样错失一个URL跳转漏洞了?其实不然,只要你的URL被百度收录过,那么直接搜索你的域名,site:xxx.xxx 因为你在百度里点击你的域名,它会先是一个302跳转,而这个302跳转就是百度下的302跳转,那么这样就可以绕过可信站点的限制,从而达到跳转到指定URL,当然,百度这个302有点长,你给它进行加密就行。

0x09 POST参数中的URL跳转
当然,这个影响就很小了,比如当你填什么表格或者需要填写什么的,当你上传图片,点击下一步的时候,通常下一步就是预览你填写的信息,最后才是提交,当你上传了图片后点击下一步抓包,如果过滤不严,你会看到图片的完整地址包含在POST参数里,你就可以直接修改这个地址为任意URL,然后到达下一步,这时是确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,这里是没有显示出来的,图像会是一个小XX,当点击图片右键选择查看图像时,就会触发URL跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息,为什么呢,比如审核看到图片无法加载,一般都会点击查看图片,然后跳转,如果安全意识不知就会造成安全影响。

当然,如果POST参数里就只是URL跳转参数,那么你可以给它转成GET方式,然后进行跳转就可以了,只要网站支持这样的GET方式就行,在Burp Suite里可以一键转换提交方式,右键选择Change request method就可以!

0x10 利用#号绕过
如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com

强力连接:https://www.secpulse.com/archives/67064.html
28.【转载】挖洞技巧:APP手势密码绕过思路总结
说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中所挖掘的关于这方面的思路,有些是网上已经有的,有些是我自己不断摸索所发现的。

JY2-1.jpg

这里说下APP手势密码绕过的危害,手势密码一般应用在支付类,金融类,安全类等相关的APP,比如XX金融,XX支付,XX钱包,XX安全中心等APP,这些基本都会有手势密码,手势密码是一个用户的第一把APP锁,如果这个锁攻破了,那么后面也就容易对用户造成威胁,虽然这个问题利用起来是需要物理操作,但是本质上我们不看如何的利用起来如何如何的难,我们就看它的安全漏洞问题。本次文章里所有说到的思路包含四种环境:需要ROOT权限,不需要ROOT环境,需要越狱环境,不需要越狱环境。

无需ROOT&越狱环境手势密码绕过的思路

0x01 利用APP广告绕过
本来打算想到网上找例子,但是没有找到。一般APP都会在启动页面时加载广告,此时,如果验证不当,当你点击广告后直接返回一下,就可以绕过手势密码。

0x02 利用多重启动绕过
这个多重启动也是我之前很早发现的思路,之前发现以为必须要ROOT环境,后来发现完全不需要,直接打开APP,停留在APP手势密码输入页面,此时我们按home键返回到桌面,随便打开个应用市场,再搜索这个APP,此时由于你已经下载了这个APP,那么它显示的就是打开,这时你点击打开,它会又重新启动一次APP,如果验证不当,可导致直接绕过手势密码,进入到APP。

0x03 利用退出绕过&爆破
这个问题也是我在很久之前测试中发现的,当然,现在这种问题很多APP还是存在的,希望尽快修复这方面的问题。一般手势密码允许输入的错误次数为5次,当错误次数达到了5次了,就会需要重新登录,而这时这个超过次数的信息可能会弹出框来提醒,或者直接显示在TextView,也就是直接显示在手势密码界面上,这都不是问题,不要点击任何解密,比如它弹出了手势密码次数超过限制框框,信息框下方会有个确认的按钮,不要点击,我们直接返回到桌面,然后清理掉后台的APP,有时候会清理不干净,导致还是在后台允许着,这可能会导致失败,所以,为了成功起见,到设置里的找到相关的应用,然后选择强制停止,然后再次打开APP,这时如果验证没做好,就会直接进到主页面,或请输入新的手势密码页面,或者会再次跳出手势密码验证界面,这时跳出的手势密码验证页面就存在爆破的问题,因为现在你又有5次机会输入手势密码,以此思路循坏,可造成对手势密码的暴力拆解。

这个问题我找到了相关的例子:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0127528.html

0x04 利用清理不当绕过
一些APP会这样储存手势密码,把手势密码储存在本地文本信息里,把账户的登录状态信息储存在本地数据库里,当清理掉这个本地数据后,实际上它并没有清理掉登录信息也就是并没有清理掉本地数据库信息,而是清理掉了本地文本信息,这就导致了清理掉了手势密码,而登录状态还是保持的,就导致了绕过问题。另一个思路比如你直接卸载再安装同样是这个原理。

这里我找到了2个例子,第一个例子:

http://wooyun.jozxing.cc/static/bugs/wooyun-2013-036972.html

第二个例子:

http://wooyun.jozxing.cc/static/bugs/wooyun-2013-040714.html

0x05 利用显示不当绕过
一些APP当你启动APP的时候,它会在短时间内进入到或者说可以点击到APP内的某些功能,此时你只要一直点击这个页面,只要够快,就可以绕过手势密码,达到这个功能界面。

关于这个问题,我找到了例子:

http://wooyun.jozxing.cc/static/bugs/wooyun-2014-057885.html

0x06 利用APP自带提示绕过
一些APP会自带提示,比如在状态栏内是不是推送一些信息,如果验证不当,就可以直接绕过手势密码,直接进入到主页面。

0x07 利用快捷发送绕过
这个我从来就没遇到过,APP手势密码验证界面会出现设置按钮,直接设置没有加以验证从而绕过。

这类问题我找到了例子:http://wooyun.jozxing.cc/static/bugs/wooyun-2012-014456.html

0x08 利用清理缺陷绕过
跟刚刚那个说的很像,也是手势密码跟账户信息储存在不同处,而追后只清理掉手势密码没清理掉登录信息的问题,在需要手势密码验证的界面点击忘记手势密码,此时会跳转到登录界面,直接返回到桌面,清理掉后台运行的APP,再次打开就直接进入到主界面,并且是登录状态。

0x09 利用界面设计缺陷绕过
以前看到过相关问题,问题是出现在IOS下的,所以我就列出来了,当进入到手势密码界面,可以左右滑动,从而滑动到主页面,绕过手势密码,这个问题可能已经很少软件存在了。

总结:

以上思路有些是我自己测试过程中所发现的,有些是网上的,以上思路都是在无需ROOT环境下或越狱下实现的,但是IOS下的软件这里面的思路基本很少可以实现,因为这些思路主要是android 下的APP问题。现在很多大型APP有一半都存在这个问题,希望各大厂商下的SRC尽快去修复或者白帽子发现了尽快提交,避免对用户以及自身产品造成影响。

以上是无需各种环境的,下面这些是需要高权限的环境下的绕过思路。

ROOT权限&越权权限下绕过手势密码的思路

(修改时所需要的软件RE管理器、Sqlite编辑器)

0x01 利用拒绝服务绕过
通过分析APP,找到跟手势密码相关的组件,利用拒绝服务攻击可直接绕过手势密码到达主页面,因为都是不同的Activity,当这个Activity停止后,就会跳转到下个Activity,而下个Activity就是主页面,从而绕过了手势密码。

这个问题我没有在测试过程中应用过,我找到了相关的例子可提供详细的参考: http://wooyun.jozxing.cc/static/bugs/wooyun-2016-0177256.html

0x02 修改shared_prefs目录下的文件从而绕过的思路总结
我为了省略一些不必要的分类,就把所有关于这个目录下的绕过方式归类到这第二种思路内,方法大家阅读吸收。在我挖掘这方面问题的这么多时间来,我把容易出现点尽可能详细的描述出来。在这个文件夹内我们只看XML,有些备份的文件就没必要看了,在这么众多的文件内怎么找到关于这个手势密码相关的文件内, 这里我就给大家说下我的技巧吧,我的技巧其实很简单,比如你修改手势密码时过好1分钟再修改,因为你进入APP时会加载信息,此时文件时间会同步变动,等在设置手势密码那里我们停住,等过1分钟再修改,这时,就可以筛选出相对来说比较精确的文件了,这时再一一查看,全都是加密的值就没必要去看,参数相对来说很少且基本都是time值,也没必要去看,后面可以通过相同的方法再来一次筛选。

经过如上你找到了储存手势密码的文件后,就可以开始修改了,这里我说下相关的思路。

第一种思路:修改文件权限

你可以把它的读权限去掉,只留下写入权限,如果APP验证不当,当你启动APP后它便会调用设置手势密码的界面,因为你没有读权限,那么只有写,误以为你需要设置手势密码,所以绕过了手势密码验证。当然也可以把所有权限全部去掉,不让它加载手势密码,那么直接启动就行。

第二种思路:修改文件内容

当修改权限这种思路无用时,就得需要修改内容了。在文件内找到手势密码,看手势密码是否加密,如果加密看能否得知加密方式以及明文信息,比如是base64或MD5等一些常见加密,那就去解密,便可得带密码,直接输入密码就行。如何加密方式无从得知,可以测试当关闭手势密码后手势密码的值,如果这时这个参数内的值被清空或者这个参数被删除了,就可以利用这种方式清空这个参数或参数值,如果当手势密码关闭时这时还是存在值,可以复制这个关闭时产生的值用在另一个账户当中,看能够强制关闭,如果没有做校验那么就可以直接强制关闭手势密码,达到绕过目的。这里我说下我的一个小技巧,可能这个问题会困扰到很多挖掘这方面问题的白帽子,在你修改这个文件时,你可能你发现你修改了,但是APP任何变化,比如你都禁用了任何权限了但是却还是没有任何变化,此时问题不是APP做了什么验证和限制,而且你没有彻底的清理掉后台运行的APP进场,当你修改时,其实它一直在运行着,运行着是不能修改文件内容的,就好你你卸载正在运行的软件一样,只不过在手机上你修改文件时看不到任何关于APP正在运行无法修改文件的提示,而电脑上就会提醒,所以你应该到设置内或快捷方式找到对应APP,选择强制退出,然后再修改文件,再打开,就可以了。网上我实在是找不到这相关的例子,找到了一个但是也只是很简单简单的明文显示问题,这让我很无奈。

这是一个手势密码明文显示问题:http://wooyun.jozxing.cc/static/bugs/wooyun-2016-0190545.html

第三种思路:修改目录权限

当你发现修改对应的文件没有作用的时候,可能是你找错了或者修改有问题,这时你可以尝试修改这个shared_prefs目录权限,把读写权限全部去掉再运行APP,这时就可以绕过手势密码。

0x03 修改databases目录下的文件从而达到绕过
同样是利用上面的方法找到相关手势密码所存放的数据库文件。当你找到了储存手势密码的相关文件,我这里就说下相关思路。

提前说下,如果你打开数据库文件出现这个错误提示

JY2-2.jpg

其实有很多思路,你可以修改权限,具体是修改哪里的权限我忘记了,好像是修改这个数据库文件的权限,或者数据库目录权限,把执行权限都勾上,具体请自己去测试下。

也可以直接把这个数据库地址复制到本地目录也就是sdcard目录下,就可以正常打开,因为权限允许,然后修改后再覆盖回去,再修改好相关权限即可。

第一种思路:修改数据库文件内容

如果手势密码是明文存放在数据库文件内,可以通过Sqlite编辑器找到对应的数据库文件,修改里面内容,同样,如果加了密可以尝试解密,如果不行,进行不断测试,看当无手势密码时这个数据库里的值得内容为什么,如何为空,那么就可以直接清除掉当前的内容就可以绕过,如果是其它值同样复制下这个关闭下的值去替换看能够关闭不同的账户手势密码,如果能,那么问题就存在。

第二种思路:修改数据库文件权限

当第一种思路不行时,你可以尝试修改当前数据库文件权限,把所有权限去掉,看能否绕过。

第三种思路:修改数据库目录权限

如果都不行,那么可能是你找错了文件或者修改出错,可以直接修改目录权限,把所有权限去掉或者只去掉执行权限,看能否绕过

0x04 修改files目录的文件从而达到绕过
这个也是我在测试中发现的问题,有时候这个目录下会存放这手势密码相关的文件,在这里你可以根据我上面说的思路是具体哪个文件,然后不停开关手势密码查看其内容已经其它文件是否跟着变换,也可以尝试修改文件权限或者目录权限。

如何找到手势密码存放在哪里?关键就是我上面说的方法,不断修改观看其目录和文件时间是否同步变换跟随,这里说下,有些目录时间跟你修改时间不同步但是其目录里的文件是同步了的,比较隐蔽,比如你修改了手势密码,根据修改时间找相关的目录以及文件,但是一些目录它时间还是以前的时间,不细心的可能就会直接不看,但是我都会去看的,然后里面的文件最近修改时间就是我刚修改手势密码的时间,所以细心很重要,如果不注意这个问题,你可能就找不当这个问题的存在或者需要花费很久的时间才能找到了。

文章中有些思路算是我自己发现的也可以说是首发,最后我在把我一个最新思路公布出来,我真的毫无保留的奉献给大家了,为的就是促进这方面更安全的发展以及让你们学习到更多的相关思路,以后可能做开发或者以及在做开发的过程中可以规避这些问题。

最新思路:禁用权限再开启权限绕过

这个问题需要看APP是不是实时的交互,也就是当本地本件发送改变APP马上就根据本地文件的改变做出改变。

同样是找到相关文件,当你修改这个文件的权限时,比如把读权限去掉,你再打开APP,发现没有验证手势密码,可能你此时此刻很开心,但是你会发现当前的登录信息以及被清除掉了,这时不要沮丧,这时再把读权限修改回去,打上勾,你回到APP,只要它可以自动同步了,那么此时就会读取数据库里的登录信息,那么状态就会从未登录状态变为登录状态了。

也可以直接修改当前目录的权限,思路也是同样的。

如果以上所有思路都是不可行的,可以尝试最终的这个思路,只要它是实时的,基本可以绕过吧。

有些手势密码跟登录信息混合在一起,也加了校验,此时你找到数据库目录databases,把读权限全部去掉,然后打开APP,此时它会进入到主页,但是没有任何登录信息,可能会显示未登录或者一片空白信息,此时你再把读权限修改回去再回到当前APP,此时它会自动加载APP登录信息,那么登录信息就出来了,此时手势密码也就绕过成功。
29.极具破坏力的DDoS:浅析其攻击及防御
一、DDoS的概念

1.什么是“DDoS”?

DDoS:Distributed Denial of Service(分布式拒绝服务)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃账号将DDoS主控程序安装在一个计算机上,控制大批量的肉鸡发动攻击。

2.什么是“拒绝服务”攻击?

可以简单理解为:让一个公开网站无法访问。要达到这个目的的方法也很简单:不断地提出服务请求,让合法用户的请求无法及时处理。

3.什么是“分布式”?

随着网络发展,很多大型企业具备较强的服务提供能力,所以应付单个请求的攻击已经不是问题。于是攻击者就组织很多同伙,同时提出服务请求,直到服务无法访问,这就叫“分布式”。但在现实中,一般的攻击者无法组织各地伙伴协同“作战”,所以会使用“僵尸网络”来控制N多计算机进行攻击。

4.什么是“僵尸网络”?

僵尸网络是数量庞大的僵尸程序(Bot)通过一定方式组合,出于恶意目的,采用一对多的方式进行控制的大型网络,也可以说是一种复合性攻击方式。因为僵尸主机的数量很大而且分布广泛,所以危害程度和防御难度都很大。

二、DDoS的攻击方式

分布式拒绝服务攻击的精髓是:利用分布式的客户端,向目标发起大量看上去合法的请求,消耗或者占用大量资源,从而达到拒绝服务的目的。其主要攻击方法有4种:

1.攻击带宽

跟大城市的交通堵塞情况一样,大家都该清楚,当网络数据包的数量达到或者超过上限的时候,会出现网络拥堵、响应缓慢的情况。DDoS就是利用这个原理,发送大量网络数据包,占满被攻击目标的全部带宽,从而造成正常请求失效,达到拒绝服务的目的。

攻击者可以使用ICMP洪水攻击(即发送大量ICMP相关报文)、或者UDP洪水攻击(即发送用户数据报协议的大包或小包),使用伪造源IP地址方式进行隐匿,并对网络造成拥堵,使服务器响应速度变慢等。

但是这种直接方式通常依靠受控主机本身的网络性能,所以效果不是很好,还容易被查到攻击源头。于是反射攻击出现,攻击者使用特殊的数据包,也就是IP地址指向作为反射器的服务器,源IP地址被伪造成攻击目标的IP,反射器接收到数据包的时候就会将响应数据发送给被攻击目标,耗尽目标网络的带宽资源。

2.攻击系统

创建TCP连接需要客户端与服务器进行三次交互,也就是常说的“三次握手”。这个信息通常被保存在连接表结构中,但是表的大小有限,所以当超过了存储量,服务器就无法创建新的TCP连接了。

攻击者利用这一点,用受控主机建立大量恶意的TCP连接,占满被攻击目标的连接表,使其无法接受新的TCP连接请求。如果攻击者发送了大量的TCP SYN报文,使服务器在短时间内产生大量的半开连接,连接表也会被很快占满,导致无法建立新的TCP连接,这种SYN洪水攻击的方式是攻击者比较常用的。

3.攻击应用

由于DNS和Web服务的广泛性和重要性,这两种服务就成为了消耗应用资源的分布式拒绝服务攻击的主要目标。

比如向DNS服务器发送大量查询请求,从而达到拒绝服务的效果,如果每一个DNS解析请求所查询的域名都是不同的,那么就能有效避开服务器缓存的解析记录,达到更好的资源消耗效果。当DNS服务的可用性受到威胁,互联网上大量的设备都会受到影响而无法正常使用。

近些年,Web技术发展非常迅速,如果攻击者利用大量的受控主机不断地向Web服务器恶意发送大量HTTP请求,要求Web服务器处理,就会完全占用服务器资源,让正常用户的Web访问请求得不到处理,导致拒绝服务。一旦Web服务受到这种攻击,就会对其承载的业务造成致命的影响。

4.混合攻击

在实际的生活中,攻击者并不关心自己使用的哪种攻击方法管用,只要能够达到目的,一般就会发动其所有的攻击手段,尽其所能地展开攻势。对于被攻击目标来说,需要面对不同的协议、不同资源的分布式拒绝服务攻击,分析、响应和处理的成本就会大大增加。

随着僵尸网络向着小型化的趋势发展,为降低攻击成本,有效隐藏攻击源,躲避安全设备,保证攻击效果,针对应用层的小流量慢速攻击已逐步发展壮大起来。因此,从另一个角度来说,DDoS攻击目前主要是两个方面:UDP及反射式大流量高速攻击、多协议小流量及慢速攻击。

三、DDoS的防御

DDoS攻击只是手段,最终目的是利益。未来网络战争将会出现更加广泛、频繁、精准的攻击,当这些来临的时候,我们应该如何应对?

1.设置高性能设备

要使网络设备不成为瓶颈,选择路由器、交换机、硬件防火墙等设备的时候就要尽量选用知名度高、口碑好的产品。若和网络提供商有协议,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。

2.提高网络带宽

网络带宽直接决定了抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYN Flood攻击。所以,最好选择100M或者更高的带宽。

3.不要忘记升级

在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包;而且最好可以进行优化资源使用,提高web server 的负载能力。

4.异常流量的清洗

通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,从而进一步将异常流量禁止过滤。

5.考虑把网站做成静态页面

把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,还能给黑客入侵带来不少麻烦。最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站,其80%属于恶意行为。

6.分布式集群防御

这是目前网络安全界防御大规模DDoS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址,并且每个节点能承受不低于10G的DDoS攻击。如果一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更深层次的安全防护角度去影响企业的安全执行决策。

就DDoS防御方面来说,目前主要是两个方面,大流量攻击可以交给运营商及云端清洗,小流量攻击可以在企业本地进行设备防护,这个分界点根据行业及业务特性的不同会有所差异,大概的量级应该在百兆BPS左右。相关的缓解与治理,有兴趣的童鞋可以看看鲍旭华的《破坏之王》,会有不小的启示。

你可能感兴趣的:(渗透)