渗透测试逻辑漏洞挖掘思路

文章目录

  • 一、逻辑漏洞挖掘Tips
  • 二、前台
  • 三、交易模块
  • 四、登录
  • 五、找回密码
  • 六、订单信息
  • 七、验证码绕过技巧
  • 八、水平越权
  • 九、数据泄露
  • 十、支付逻辑漏洞总结

一、逻辑漏洞挖掘Tips

企业使用的外部第三方系统和比较隐蔽的系统
信息收集的范围不要只找子域名,应该涵盖其证书,header信息,备案号,企业的微信/支付宝公众号+小程序+APP等
图片上传也可能存在ImageTragick命令执行
https://ipwhois.cnnic.net.cn/查Ip段和公司信息
敏感信息收集工具:weakfilescan,GitMiner,GitPrey,dirb,FuzzDB
如果可以,想办法找到各类资料搞定注册(注册公司/购买营业执照;网上公开信息收集;PS)
有些账号也可以花几十块钱在某宝上或QQ群上购买

二、前台

主要方法有以下几个
修改参数
删除参数
爆破验证码
遍历Id

三、交易模块

主要方法有以下几个
购买支付 / 充值(主要还是利用抓包需要仔细的去看每一个可用参数)

  • 交易金额/数量修改,替换支付模块 (这里也就是更换了支付的模块金额)
  • 交易信息订单编码/导致信息泄露
  • 整数溢出,int最大值为2147483647 ,超过最大值
  • 修改充值账户
  • 支付绕过
    抽奖活动逻辑漏洞
    刷奖品/积分
  • 并发

购物与活动功能找到喜欢的商品,添加购物车,提交订单,支付订单,基本的流程是这样的,
但是这三个流程可能会存在业务设计的缺陷,其他可以通过修改产品的数量,产品的实践,优惠券,产品的 id,sku 值等等
1、逻辑支付漏洞
第一步,打开 xx 你会发现有一个骑手商城,点进去里面一个最贵的商品,然后支付,支付的时 候抓包
2、找到最便宜的产品,点击购买抓包,然后将刚才那个数据包,全部内容,替换过去
点击提交会显示系统错误,重新支付,但是你多点几次,ok 订单价格替换掉,支付价格也替换了,然后再购买一件最便宜的商品,再创建一个高价值的订单,再将订单退货抓取一个数据包,价格参数中 的 oid 修改为高价值的产品订单,那么在订单中就会把一个还未支付的订单给退款了

四、登录

1.短信轰炸/验证码安全问题/密码爆破/邮箱轰炸
2.SQL注入
3.撞库
4.抓包把password字段修改成空值发送
5.认证凭证替换/比如返回的数据包中包含账号,修改账号就能登陆其他账号
6.Cookie仿冒
7.修改返回包的相关数据,可能会登陆到其他的用户

五、找回密码

1.短信邮箱轰炸/短信邮箱劫持
2.重置任意用户密码/验证码手机用户未统一验证
3.直接跳过验证步骤

六、订单信息

订单信息遍历/泄露

  • 订单信息泄露导致用户信息泄露
  • 删除他人订单
    会员系统逻辑漏洞
  1. 修改个人信息上传文件,上传带弹窗的html
  2. 如遇上上传xlsx/docx,可能存在xxe,上传恶意的文档盲测
  3. 图片上传也可能遇到imagereagick命令执行,上传恶意图片
  4. 视频上传如果使用ffmpeg < 3.2.4(视频按帧分割成图片),上传恶意avi盲测ssrf
  5. 用户横向越权访问/遍历/导致用户信息泄露
  6. SQL注入/个人简介处存储XSS 个人信息注册的名称也可以插入xss
    明文传输账号密码
  • 修改信息处无session/token导致csrf
  • POST/COOKIE注入
    评论
  • POST注入/存储XSS
  • 无session/token导致CSRF

七、验证码绕过技巧

  • 万能验证码
  • 返回包中存在验证码
  • 删除验证码或者cookie中的值可以爆破账号密码
    短信轰炸
    一直重放
  • 删除修改cookie,重放数据包
  • 遍历参数发送数据包
  • 手机号后面加空格或者前面加其他的比如+ 86或者逗号分号等,然后重发数据包
  • 请求参数修改大小写,或者添加请求参数比如& id = 1
  • 一个站的登陆处可能做了防护,但是再找回密码处可能没有安全防护,或者在注册流程中没有安全防护,所以说
    多测试接口
  • 如果对手机号一天次数进行了限制的话,还可以在进行发送一次短信,DO intercept之后修改为成功回显

八、水平越权

  • 主要登陆后还是修改参数,主要找到多个接口不断测试
  • 关注网页源代码,有时候会有表单,但是被bidden(隐藏标签)给隐藏起来了,可以修改返回包然后尝试获取数据 检测
  • 多个账号,主要分析请求参数

九、数据泄露

在找回密码处,填写数据后抓包查看返回信息,有可能存在敏感数据返回
任意用户密码重置
目前大部分都是在修改密码处参数修改
有些是前端验证

十、支付逻辑漏洞总结

  1. 边界值问题 : 正常的逻辑是用户购买商品,然后价格累加得到一个总价进行扣款。这个时候就会产生逻辑问题:如果
    说用户购买的商品是负数了,那么计算的总数就是负数。反过来钱给用户
  2. 顺序执行缺陷:正常的逻辑是 a-b-c-d 循环渐进的进行流程操作。这个时候就会产生逻辑问题:可以直接从中绕过
    某一个过程进入到下一步操作。如果说有一项是支付的操作,那么也就会产生支付绕过,如果说有一项是验证机制,就
    会绕过验证直接进入下一步。
  3. 金额直接传输导致篡改:直接对下单的金额进行修改值,这里可以使用 fd 或者 burp 抓包
  4. 确定支付之后还可以加入购物车:把商品放入购物车点击下单支付,会跳转到微信,支付宝等第三方支付平台。这个
    时候还可以继续在购物车中加入商品,支付结束之后,商家发放的商品是现在的购物车里面的东西。
  5. 请求重放:购买成功之后,继续重放请求,可以让购买的商品一直增加。购买成功之后,会有一个银行对商户网站跳
    转的过程,如果反复进行操作,有几率会导致商品反复购买和增加,但是不需要付更多的钱。
  6. 请求参数干扰:金钱做了签名认证之后,修改后不通过,但是在里面仍然会有一个参数对金额产生影响导致问题产
    生。
  7. 订单替换:订单替换发生在支付之后的事件处理,同时向服务器发起二次支付请求一个多一个少,支付金额少的,然
    后支付之后进行替换,告知服务器订单支付完成,并且过程可以反复的回放。
  8. 欺诈 : 需要两个收款人,一个是正常的商家,一个是伪造的商家
  9. 单位替换:产生在 paypal 类似的国际支付的场景。
  10. 用户替换:在支付过程中发生用户替换现象,首先登陆自己的账户,然后取得另外一个人的账户名等有效信息,在
    业务流程中用对方的用户名替换自己的用户名,用对方的余额购买完成后,再替换自己的账户名,这样就形成别人的钱
    买自己的东西
  11. 强制攻击:强制攻击发生在暴力破解的情况下,如果一个商家运用一个自己的网店,接入第三方支付接口,由于设
    计上的不当导致商家与第三方支付约定的密钥 Key 可以单独被 MD5 加密,导致可以使用 MD5 碰撞技术对密钥进行破
    解,攻击者可以设计简单的密钥加密信息使得 MD5 加密是可以用 MD5 碰撞技术进行暴力破解。
  12. 秘钥泄漏:内置支付功能的 app 为了设计上的方便有可能会把 Md5 或者是 RSA 的私钥泄漏导致攻击者反编译
    apk 之后获取密钥信息使得交易信息可以被篡改。
  13. 函数修改:apk 反编译之后的函数修改,可能导致商家在最后一步向支付方提交订单时未验证信息的准确性,仍然
    被篡改。
    14.heart bleed:SSL(安全套接层)协议是使用最为普遍网站加密技术,而 OpenSSL 则是开源的 SSL 套件,为全
    球成千上万的 web 服务器所使用。Web 服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加
    密。URL 中使用 https 打头的连接都免采用了 SSL 加密技术。在线购物、网银等活动均采用 SSL 技术来防止窃密及避
    中间人攻击。
    该漏洞被归为缓冲过度读取。缓冲过度读取错误是软件可以读取比应该被允许还多的数据。漏洞 让特定版本的 openSSL 成为无需钥匙即可开启的“废锁”,入侵者每次可以翻检户主的 64K 信 息,只要有足够的耐心和时间,就可以翻检足够多的数据,拼凑出户主的银行密码、私信等敏感 数据。产生原因:数据在传输的两端是不加密的。一些数据如果在传输过程中不加密则会泄露个人数据等信息

你可能感兴趣的:(安全)