设置背景图片
模块透明度调整:
越权漏洞讲解
首页 > 渗透测试 作者:H0rk4 2018年4月7日 热度:140 字号: 评论: 0 百度未收录
时间:2018-4-7 17:57 热度:140°  评论:0 条 

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

信息遍历


<?php
$id = @$_GET['id']; $arr = array('1', '2', '3', '4', '5');   if(in_array($id, $arr, true))  
echo "用户名:$id 密码:123456";
echo "信息出错";
else
这段代码首先从 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'];
header("Location:user.php");
if($name=="admin" && $pass=="admin123"){ setcookie('name','admin');
}




这段代码模拟了登录页面,如果账号是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:


点击查看原图

2.jpg

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

点击查看原图

点击查看原图

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

点击查看原图

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

点击查看原图

点击查看原图



成功绕过了验证。

JS 绕过

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



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

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


正文到此结束

热门推荐

二维码加载中...
版权声明:若无特殊注明,本文皆为《 H0rk4 》原创,转载请保留文章出处。
本文链接:越权漏洞讲解 http://www.8ohk.com/?post=85

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗


既然没有吐槽,那就赶紧抢沙发吧!


本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除  

Copyright © 2017-2019  H0rk4's Blog - 致力关注于黑客技术、渗透测试、网络信息安全、1980黑客团队   站长: H0rk4  主题1980黑客团队   H0rk4