业务漏洞挖掘笔记
多年的实战业务漏洞挖掘经验,为了让今后的业务漏洞挖掘工作更清晰,以及尽可能的把重复性的工作自动化、半自动化,所以花费很大精力做了这个笔记。 具体操作流程: 得到测试目标-目标资产范围确定-资产收集-资产管理-资产分类-具体业务功能理解-业务漏洞测试-逻辑漏洞测试-提交报告
资产管理
目标资产
-
域名、子域名 -
网页内容特征信息 -
ICP备案信息 -
WHOIS联系信息 -
SSL/TLS证书信息 -
DNS解析信息 -
WHOIS-NAMESERVER信息 -
IP以及同IP其他端口和站点服务类型和版本等基础信息 -
C段、B段、等相关ip段 -
目标全名、介绍、招股书、所在地/联系方式/邮箱/电话/github -
目标负责人、法人、管理员、员工 姓名/所在地/联系方式/邮箱/电话 -
客户端应用windows/android/ios/mac/公众号/小程序 -
其他
功能资产
-
一个组建应用突然爆出0day,可以快速第一时间定位到目标资产中存在该组建的资产。 -
租用若干vps,7x24小时爆破目标资产中可以爆破弱密码的资产。 -
租用若干vps,7x24监控资产变化,以便发现高风险的点。
资产监控
-
web业务的变化 -
IP和端口的变化 -
客户端软件的更新迭代
漏洞
业务面临的风险
-
机器权限 -
功能权限 -
相关应用服务权限 -
数据泄露
什么是漏洞?
-
商品展示、商品分类搜索、商品购买等。 -
网站后台管理 商品管理、订单处理、相关反馈处理等。 -
个人用户管理、用户注册、用户登录处理、用户个人资料编辑、收获地址管理、订单管理等。
黑盒测试相关漏洞
-
Xss <?
echo $_GET[ 'xss' ];
?>
-
Sql <?php
$id=$_GET["id"];
if (isset($id)){
//$statement = $link->prepare("SELECT * FROM users where id=".$id);
$result = mysqli_query($link,"SELECT * FROM users where user_id=".$id);
if (!$result) {
printf("Error: %sn", mysqli_error($link));
exit();
}
while($row = mysqli_fetch_array($result)){
echo $row['first_name'];
echo "<br>";
}
}else {
echo '{"text":"error"}';
}
?>
-
Ssrf <?php
ini_set("display_errors", "On");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
#curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
#curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
curl_exec($ch);
curl_close($ch);
?>服务端通过内网访问用户输入的url链接就是ssrf -
文件读取 -
Xxe xml注入 -
逻辑漏洞 -
命令注入 <?php
/*
命令注入案例
*/
if( isset( $_GET[ 'Submit' ] ) ) {
// Get input
$target = $_REQUEST[ 'cmd' ];
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ls ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'dir ' . $target );
}
// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
?>
-
代码注入 php/nodejs/jsp/aspx/asp/python/golang/c/c++等等编程语言的写入与拼接。 -
信息泄露 -
上传漏洞 上传可执行文件到可执行目录,或者被服务端执行。
-
响应内容 -
响应时间 -
Dnslog/Httplog判断 -
浏览器Dom渲染后的Html -
浏览器DevTools Console
-
通过修改请求参数值后追加 单双引号 逐个重放,遍历每个参数,确认那个参数会引起响应异常。 -
对异常的参数,通过修改请求参数值后追加payload 来检测命令注入、ssrf、代码注入、sql注入、信息泄露等漏洞。 -
如果响应Content-Type=html,用浏览器重放请求来检测domxss、和抓取dom渲染后页面url、domain等相关信息。
--remote-debugging-port=9222
然后远程调试 可以做一些,便捷的工具,如自动表单填写,自动点击页面等功能,辅助测试,减少不必要的重复工作。对于常规的业务场景,从目标范围确定,资产收集到漏洞检测,尽可能的规范化,流程化,工具化,做黑客绝对不应该是整天去手工修改http通信里的参数,在url里加单引号 加
<script>
,修改id遍历,能不能酷一点 做个帅一点的黑客?一直幻想着通过自动化挖洞躺赚的一天....
文章来源:先知社区 作者:guimaizi
广告
重生信息安全公众号→菜单栏→公检合作→公检法合作
本文始发于微信公众号(重生信息安全):业务漏洞挖掘笔记
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论