前言
这是在实验吧上面的一道web题。主要考察cbc字节反转攻击。
分析
题目开始就是输入id去登录
首先想到的就是sql注入了,输入1'
后页面显示Hello
,重新载入的话页面返回报错信息
确实存在注入,看那后面的逗号,猜测注入点在limit
后面。然后试了很多,发现题目把union,#,procedure
等都过滤了,暂时没想到任何绕过的方法。然后抓包看看消息头看看有没有提示
提示存在test.php
文件,访问后是php源码,接下来就是源码分析了
<?php
define("SECRET_KEY", '***********');
define("METHOD", "aes-128-cbc");
error_reporting(0);
include('conn.php');
function sqliCheck($str){if(preg_match("/\\\|,|-|#|=|~|union|like|procedure/i",$str)){return 1;}return 0;
}
function get_random_iv(){$random_iv='';for($i=0;$i<16;$i++){$random_iv.=chr(rand(1,255));}return $random_iv;
}
function login