米斯特白帽培训讲义 漏洞篇 越权

简介: 米斯特白帽培训讲义 漏洞篇 越权 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0越权漏洞是 Web 应用程序中一种常见的安全漏洞。

米斯特白帽培训讲义 漏洞篇 越权

讲师:gh0stkey

整理:飞龙

协议:CC BY-NC-SA 4.0

越权漏洞是 Web 应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是开发人员在对数据进行增、删、改、查时对客户端请求的数据过于信任而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程。

信息遍历

<?php
$id = @$_GET['id'];
$arr = array('1', '2', '3', '4', '5');
if(in_array($id, $arr, true)) 
    echo "用户名:$id 密码:123456";
else
    echo "信息出错";

这段代码首先从 URL 参数中读取 ID,之后与现存 ID 比对,如果存在则输出 ID 和密码,不存在则报错。这里 ID 是被查询的信息,假设系统里一共就五个 ID。由于这里不存在过滤,那么我们可以不绕过任何东西来查询它们。

隐藏式后台

一些网站的后台不存在任何用户校验,反之,它会把后台隐藏起来。隐藏之后,公开页面上不存在任何到后台的链接,但是如果直接输入 URL,还是可以访问的。那我们就能使用扫描器扫出后台地址,然后直接访问。

Cookie 绕过

有些时候,我们可以绕过 Cookie、JS 代码的验证执行越权。

首先看一段代码:

<!-- pass-cookie.php -->
<form action="" method="post">
    <input type="text" name="name"/>
    <input type="password" name="pass"/>
    <input type="submit" value="登录"/>
</form>
<?php
$name=@$_POST['name'];
$pass=@$_POST['pass'];
if($name=="admin" && $pass=="admin123"){
    setcookie('name','admin');
    header("Location:user.php");
}

这段代码模拟了登录页面,如果账号是admin,密码是admin123,则在 Cookie 中将name设置为admin,然后跳到user.php

再来看user.php

<?php
if (!isset($_COOKIE["name"])){
    header("Location:past-cookie.php");
}else{
    $name=$_COOKIE['name'];
    echo "Welcome ".$name;
}

这段代码先检验 Cookie中的name,不存在则跳回去,存在则输出其值。

这段代码的最大问题就是验证极其不严密,它拿到name之后并没有验证它是谁,也没有使用数据库来查询。就像劲舞团里面,我们按特定的键才能通过,他这个漏洞就相当于,游戏需要我们按下Z,但是我们按下X也能通过,甚至按任意键也可以。

既然 Cookie 是用户可控的,那我们就可以伪造一个值了,我们接下来会用到 BurpSuite。首先在 浏览器中将代理设为127.0.0.1:8888

之后打开 Burp,设置代理,并打开拦截模式:

假设我们不经过登录页面,直接访问user.php,Burp 中应该能看到拦截到的请求:

我们伪造Cookie: name=xxx,然后放行:

成功绕过了验证。

JS 绕过

JS 绕过则是把所有校验放在前端,比如,user.php的内容改为:

<script>
function chkcookies()
{
  var NameOfCookie="name";
  var c = document.cookie.indexOf(NameOfCookie+"="); 
  if (c != -1)
  {
    return true;
    alert("登录成功");
    var str_html="<h1>欢迎登录本系统</h1>";
    document.write(str_html);
  }
  else
  {
   alert("请不要非法访问");
   location.href="past-js.php";
  }
  return false;
}
chkcookies();
</script>

那我们就不必改什么 Cookie了,直接访问服务器拿到纯文本,之后不解释 JS 就可以了。

相关文章
|
安全 Linux 网络安全
游戏史上最大泄露事件落幕!泄露GTA6的17岁少年黑客被捕,攻击优步的也是他?!
游戏史上最大泄露事件落幕!泄露GTA6的17岁少年黑客被捕,攻击优步的也是他?!
284 0
游戏史上最大泄露事件落幕!泄露GTA6的17岁少年黑客被捕,攻击优步的也是他?!
|
安全
成都本地论坛被黑 曝光帖揭露黑客攻击
         域名被攻击,某个帖子地址被DDOS攻击多达50余万次,网站一度关闭页面进行系统维护……前日下午1点30分,成都本地论坛第四城社区在主页头条位置贴出一则“严正申明”,就29日、30日两天网站连续多次出现访问故障向网友作出说明,表明这是一次有预谋的黑客攻击行为。
1082 0
|
安全
黑客因网络钓鱼在美被判入狱八年半
  据国外媒体报道,美国一家联邦法庭在明尼苏达州判决,一名罗马尼亚移民因使用赢利性的“网络钓鱼”程序窃取大量财务和私人身份数据需入狱8年半。   来自美国密歇根州的23岁青年塞吉-D·波帕(Sergiu D. Popa)承认,他的行为导致约7000名受害者损失了70万美元,其中约有100人来自明尼苏达州。
757 0
|
安全 数据安全/隐私保护 iOS开发
|
编解码 网络协议 安全
米斯特白帽培训讲义(v2)漏洞篇 SSRF
米斯特白帽培训讲义 漏洞篇 SSRF 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 很多 Web 应用都提供了从其他服务器上获取数据的功能。
1224 0
|
安全 数据安全/隐私保护 Windows
米斯特白帽培训讲义(v2)漏洞篇 提权
米斯特白帽培训讲义 漏洞篇 提权 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 提权,顾名思义就是提高自己在服务器中的权限,就比如在 Windows 中你本身登录的用户是 guest,通过提权后就变成超级管理员,拥有了管理 Windows 的所有权限。
1077 0
|
安全 JavaScript 数据安全/隐私保护
米斯特白帽培训讲义(v2)漏洞篇 第三方风险
米斯特白帽培训讲义 漏洞篇 第三方风险 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 域名商 域名商就是提供域名购买的站点。
1168 0
|
监控 安全 PHP
米斯特白帽培训讲义(v2)漏洞篇 文件包含
米斯特白帽培训讲义 漏洞篇 文件包含 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 原理 文件包含就是将一个文件包含到自己的文件中执行。
1227 0
|
安全 应用服务中间件 PHP
米斯特白帽培训讲义(v2)漏洞篇 文件上传
米斯特白帽培训讲义 漏洞篇 文件上传 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 我们首先看一下文件上传的流程图。
1158 0