zoukankan      html  css  js  c++  java
  • UNCTF2020-WEB:L0vephp(文件包含|iconv.utf-8.utf-16)

    题目给了提示说要获取源码,猜测是文件包含,fuzz后发现action参数能够获取/etc/passwd的内容

    使用php伪协议获取源码,发现过滤了base64,于是构造exp如下

     这样看的话有点眼花,直接复制不行,在response框中右键保存为文件,然后在Sublime Text中以utf-16编码打开就能正常显示了

    发现里面没有想要的内容,继续查看flag.php的源码,发现了flag,但是验证后这个flag不正确

    还有一个hint的字符串,尝试后得到是16进制,我们将它转为字符串

    继续查看1nD3x.php源码

     审计源码得到要绕过两个黑名单、长度不大于16进行代码执行

    先查看php信息

    data://协议必须双在on才能正常使用;

    allow_url_fopen :on

    allow_url_include:on

    php://input协议要allow_url_include:on才能使用;

    接着使用文件包含和伪协议执行命令

    POST http://32aa5649-2054-4bba-9bf5-66dd0d023130.node1.hackingfor.fun/1nD3x.php?code=include$_GET[1];&1=php://input
    
    <?php system("find / -name 'flag*'");?>

  • 相关阅读:
    Android手势(上,下,左和右的判断)
    我爱意甲
    程序员特有的9个坏习惯
    我爱英超
    VS2010快捷键总结(一)
    C#中导出Excel总结
    MessageDAL
    GDI+ 绘图总结
    .net中绑定日期时,只显示年月日的做法
    Vb线程控制
  • 原文地址:https://www.cnblogs.com/luocodes/p/14020611.html
Copyright © 2011-2022 走看看