逻辑漏洞小结

总结一下常见逻辑漏洞

常见点


	个人信息
	密码修改
	密码忘记
	支付区域
	手机号
	地址

0x01 登陆处(不局限登陆,例如下文的短信轰炸等)


登陆时,是否可以绕过验证码形成撞库

  • 返回包中有验证码
  • 返回页面 hidden中有验证码
  • 有些其他登陆url中不需要验证码 (app 微信 测试url)
  • 验证码不变,验证码没有一个完整的服务请求,只在刷新url时才变(例如,cookie与验证码绑定,不刷新则不变)
  • 第一次请求包验证了验证码是否正确,第二次请求不需要验证
  • 拦截登录时验证码的刷新请求,第一次验证码未失效,可绕过
  • 验证码和用户名、密码是否一次同时提交
  • 万能验证码 如000000
  • 删除验证码参数或者Cookie中的一些值

简单验证码ocr识别

交给三方打码平台

邮箱轰炸,短信轰炸,burp Repeate,短信轰炸验证码有60秒限制时,有的参数修改后可绕过

isVerfi参数 这里是1 回包 3 手机没收到信息 存在验证码限制

60s验证码

改为0 回显2 绕过了验证码限制

60s验证码

枚举注册用户 输入用户名,发送请求验证用户名是否正确(若返回次数限制,可测试服务端未限制高频访问)

登陆失败有次数限制,若包中有限制参数可更改或删除参数

cookie简单可猜测

cookie一直有效,(修改密码后)

第三方账户登录绕过(拦截微博授权成功的请求地址: https://api.weibo.com/oauth2/sso_authorize?sflag=1 修改response中uid,服务端没有校验客户端提交的uid与授权成功的uid相同)

0x02 密码找回


  • 验证码回传
  • 验证码时间长,不失效可爆破(字典可去除全1重复数多的)
  • 修改密码,修改发送手机号修改为自己可控,[http://www.freebuf.com/articles/database/161495.html]
  • 验证码未绑定 只验证验证码正确,没判断用户id 或手机号,修改想改的id 正确手机验证码即可
  • 验证码 手机 用户未统一验证
  • 邮箱验证可猜测(https://www.secpulse.com/archives/9608.html)
  • 假如找回需要4部,最后一部有user参数,用自己账号正常到第三部,第四部修改user实现

逻辑

  • 可以跳步找回(直接访问页面)
  • 本地验证,修改返回值
  • 服务器验证为空,包中直接删除验证码
  • 个别验证码全0可绕过
  • token生成可控(wooyun两篇实例) http://cb.drops.wiki/bugs/wooyun-2014-058210.html
    http://cb.drops.wiki/bugs/wooyun-2015-094242.html https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=31203&ctid=48
  • cookie覆盖

两个手机号
第一个手机
正常 忘记密码 到第三步

逻辑

在同一浏览器下 第二手机号 忘记密码 提交到第二部

逻辑

刷新 第一个手机的第三部时可 发现 用户名变为第二个手机

逻辑

逻辑

  • 邮箱同上
  • 各种参数fuzz

0x03 支付


  • 金额运费修改
POST /iflight/submitorder.html HTTP/1.1
Host: wx.17u.cn
Accept: application/json
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Origin: http://wx.17u.cn
Content-Length: 780
Connetion: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B436 MicroMessenger/6.3.13 NetType/3G+ Language/zh_CN
Referer: http://wx.17u.cn/iflight/book2.html?showwxpaytitle=1&guid=0e1d1663-803f-4f0d-962c-6efdd953bfb0&pname=%E4%BC%98%E9%80%89%E7%BB%8F%E6%B5%8E%E8%88%B1&openId=oOCyauK2742VyO4lLB7MR9KyZ21o
Cookie: Hm_lpvt_ce483b7c47bdfff963bf969de6b20019=1455694949; Hm_lpvt_f124dc8d3ca8e5fe66210d2c8c4c9c73=1455694949; Hm_lvt_ce483b7c47bdfff963bf969de6b20019=1455693089; Hm_lvt_dac6eb9775cdf535d3f23bd7df437024=1455530510; Hm_lvt_f124dc8d3ca8e5fe66210d2c8c4c9c73=1455693079; ASP.NET_SessionId=ynx5tnjn35tycx4ed1njfv51; RedEnvelope=mobile=*&proid=1&sign=e657fb8e47cb54685a9dc8ba1c2ef71a; route=04c7e27d7ac260044207170d0d0c2dcc; __tctma=217272534.1455530050464768.1455530050361.1455530050361.1455692231159.2; __tctmb=217272534.2336832102596608.1455694516121.1455694520499.39; __tctmc=217272534.255680334; __tctmd=217272534.49516128; __tctmu=217272534.0.0; __tctmz=217272534.1455692231159.2.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __tctrack=0; cookieOpenSource=openid=oOCyauK2742VyO4lLB7MR9KyZ21o&token=OezXcEiiBSKSxW0eoylIeGWrGa1k0ZhUFKJ2Kjd4-zx3QnTOZ8dZFNps3K1OWCRUlPHVgWxoAKNpZkdnWqlPK4-rFsO78vhV_f3g5ssJfbvO-sxvyvNd1ejJdQzrafo37eJPpoRbmC4oEv-F13n28g; CooperateUser=CooperateUserId=oOCyauK2742VyO4lLB7MR9KyZ21o&openid=oOCyauK2742VyO4lLB7MR9KyZ21o&MemberId=KJ1N9y9uWzKeAIYNlnf7IQ%3d%3d; CooperateWxUser=CooperateUserId=oOCyauK2742VyO4lLB7MR9KyZ21o&openid=oOCyauK2742VyO4lLB7MR9KyZ21o&MemberId=KJ1N9y9uWzKeAIYNlnf7IQ%3d%3d&token=OezXcEiiBSKSxW0eoylIeGWrGa1k0ZhUFKJ2Kjd4-zx3QnTOZ8dZFNps3K1OWCRU457vrjrGm572APrLXimER80jQ-aUtGsJG2gofngMvkfOIsX5HHbL8R8vXcvyBn3l6c2rjQeO9pAbvQqg3UYPVA&MemberSysId=33; longKey=1455530050464768; selectIFlightTip=true; WxUser=openid=oOCyauK2742VyO4lLB7MR9KyZ21o&token=OezXcEiiBSKSxW0eoylIeGWrGa1k0ZhUFKJ2Kjd4-zx3QnTOZ8dZFNps3K1OWCRU457vrjrGm572APrLXimER80jQ-aUtGsJG2gofngMvkfOIsX5HHbL8R8vXcvyBn3l6c2rjQeO9pAbvQqg3UYPVA&refreshtoken=OezXcEiiBSKSxW0eoylIeGWrGa1k0ZhUFKJ2Kjd4-zx3QnTOZ8dZFNps3K1OWCRUPl81zJaYBlhJ559aXBeMJxcXQjdSymG3BlcYQapjwxGizgjMMomJlQRrag5UzFSLvQeUmKHWQMxUUkKgTLhGww&userid=KJ1N9y9uWzKeAIYNlnf7IQ==

req=%7B%22sg%22%3A%220e1d1663-803f-4f0d-962c-6efdd953bfb0%22%2C%22opass%22%3A%5B%7B%22ln%22%3A%22CE%22%2C%22fn%22%3A%22SHI%22%2C%22sex%22%3A1%2C%22nat%22%3A%22%E4%B8%AD%E5%9B%BD%22%2C%22bir%22%3A%221989-01-01%22%2C%22ctype%22%3A%221%22%2C%22no%22%3A%2215262727%22%2C%22pt%22%3A%221%22%2C%22lid%22%3A%2297789585%22%2C%22bx%22%3A%5B%7B%22bxtype%22%3A391%2C%22bxprice%22%3A80%2C%22bxcutprofit%22%3A0%2C%22reentryAmount%22%3A65%2C%22bxqz%22%3Afalse%7D%2C%7B%22bxtype%22%3A331%2C%22bxprice%22%3A20%7D%5D%7D%5D%2C%22contact%22%3A%7B%22mo%22%3A%2213111111111%22%2C%22email%22%3A%22%22%7D%2C%22mtype%22%3A0%2C%22account%22%3A%22%22%2C%22memid%22%3A139978118%2C%22Plat%22%3A10%2C%22pubplat%22%3A501%2C%22inf%22%3A0%2C%22cnn%22%3A0%2C%22adt%22%3A1%2C%22total%22%3A1462%7D&moblie=13111111111

修改bxprice,可改成任意负数金额

  • 改id 给自己转账 红包 作者Onls辜釉
  • 数量
  • 请求重放,多次下单
  • mysql多线程并发,条件竞争 (数据库操作加锁)
    https://threathunter.org/topic/5942363d44a81b6215130e29 http://60.205.228.7/?p=278
  • 参数污染 请求没该参数,却返回该参数,可请求该参数污染返回值 逻辑 逻辑

实例 https://threathunter.org/topic/593ff6bc9c58e020408a79d4

0x04 越权


  • 改识别用户参数
  • 改cookie
  • 越权访问
  • 登陆后,修改密码 未校验id与用户 修改id 即可该其他人密码
  • 修改个人数据时 页面源代码有用户标识符id 抓包修改或添加id
  • 直接访问后台链接禁用js则不会跳转登录界面,直接登陆
  • 登陆分为账号和游客登陆,游客功能有限,app端只前端检测,模拟发包即可

乌云drops - 小川 我的越权之道
http://static.hx99.net/static/drops/tips-727.html

注册


恶意注册

0x05 总结


认真加耐心,谦虚学习

参考

	freebuf
	mottoin
	北风飘然
	ichunqiu
	wooyun
	先知
	threathunter
Written on July 17, 2017