Shooting field audit summary
目录
- 说明
- 前言
- 审计过程
- 小结
前言
下午审计了一波,成功用burp把环境搞崩= =哈哈哈
说明
V靶场全名(VAuditDemo_Debug),我这里简称V
审计过程
这是我之前审计过的地方(我扔博客里了,这里就不在重复):
越权的发现
代码路径:
\VAuditDemo-master\VAuditDemo_Debug\user\UpdateName.php
代码如下:
<?php
include_once('../sys/config.php');
if (isset($_POST['submit']) && !empty($_POST['username']) ) { /*判断是否存在POST请求的submit和username参数*/
if (strlen($_POST['username'])>16) { /*判断用户名是否长过16位*/
$_SESSION['error_info'] = '用户名過長(用戶名長度<=16)';
header('Location: edit.php');
exit;
}
$clean_username = clean_input($_POST['username']);
$clean_user_id = clean_input($_POST['id']);
//判断用户名已是否存在
$query = "SELECT * FROM users WHERE user_name = '$clean_username'"; /*b不存在SQL注入*/
$data = mysql_query($query, $conn);
if (mysql_num_rows($data) == 1) {
$_SESSION['error_info'] = '用户名已存在';
header('Location: edit.php');
exit;
}
$query = "UPDATE users SET user_name = '$clean_username' WHERE user_id = '$clean_user_id'"; /*b不存在SQL注入*/
mysql_query($query, $conn) or die("update error!");
mysql_close($conn);
//刷新缓存
$_SESSION['username'] = $clean_username;
header('Location: edit.php');
}
else {
not_find($_SERVER['PHP_SELF']);
}
/*
1.先判断是否有POST请求
2.判断新的用户名是否长过16位
3.判断用户名是否存在
4.更新数据库名
PS:少了检测请求的ID是否等于用户的id,也就是说通过修改这个ID就能达到修改别的用户的名称实现平行越权
*/
?>
实验:
第一个用户:admins 密码:admin
第二个用户:我喜欢你 密码:111111
使用我喜欢你这个用户来改admins用户的用户名:
修改前的数据库:
Burp抓包重放:
修改后的数据库:
文件包含漏洞
在审计别的洞的时间用burp扫了一波,发现index.php居然有文件包含= =
burp扫描配置如下:
文件包含:
index.php
<?php
require_once('sys/config.php');
require_once('header.php');
?>
<div class="row">
<?php
/* Include */
if (isset($_GET['module'])){
include($_GET['module'].'.inc');/*指定后缀*/
}else{
?>
<div class="jumbotron" style="text-align: center;">
<h1><b>VAuditDemo</b></h1>
<p>一个简单的Web漏洞演练平台</p><br />
</div>
<div class="col-lg-12">
<h2>用於演示講解PHP基本漏洞</h2>
<p></p>
</div>
<?php
}
?>
</div>
<?php
require_once('footer.php');
?>
绕过方法有两种:
1.远程文件包含 要求:allow_url_fopen开启
2.zip协议 要求:zip协议没被禁止,知道绝对路径
远程包含payload如下:
http://127.0.0.1/index.php?module=http://127.0.0.1/1.txt?
ZIP协议如下:
http://127.0.0.1/index.php?module=zip://I:\phpstudy\PHPTutorial\WWW\VAuditDemo-master\VAuditDemo_Debug\demo.zip%23
压缩包图片:
这里有个坑:就是你用zip协议的时候压缩包里面文件名一定要一样不然不行的,如果他指定后缀名
你就两个后缀名 比如:
指定后缀为:dd.txt 那么你压缩包里面就要放个dd.txt
指定后缀名为:.inc和上面一样那么压缩包放个.inc.inc
靶场下载地址:http://t.cn/Ec19F3B
小结
快速判断是否有SQL注入,在带入数据库查询之前看看参数是否有使用什么函数之类的,有就直接过,除非数据库编码是GBK,如果是黑名单替换,看看是否能绕过
在框架的php文件里面快速搜索include这个关键词,看看哪里有参数可控的地方,如果有测试一下说不定能找到个文件包含
转载请声明:转自422926799.github.io
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:Shooting field audit summary
本文作者:九世
发布时间:2019-02-13, 00:45:22
最后更新:2019-04-19, 20:36:16
原始链接:http://jiushill.github.io/posts/9cb056fa.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。