XCTF Web题练习 CAT writeup

  进阶区

    第一题  CAT

葡京在线网投      叫我们输入域名,那就随便输一个baidu.com,等半天没返回

      嗯??

葡京在线网投      输入百度IP,才发现有返回

      输入127.0.0.1 ,发现是个Ping功能。= =

                       

      尝试下能不能用 | 符 实现任意命令执行,先试试 payload:127.0.0.1 | ls    

葡京在线网投      emmm, Invalid URL,意思是我里面有非法字符?

      仔细试了一下,发现能够输入的只能是数字,英文字母和  .   ,那要是按这个思路来的话任意命令执行的貌似是行不通了。

 

      唔,没办法,没思路了,作为小白的我只能去乖乖的看dalao的wp了。

      嗯~,URL的传参处?url=这里输入%80及以后的URL编码就可以返回Django报错,嗯?why?

      看了很多wp后才知道= =,URL编码使用的是16进制,80也就是128了,而Ascii码只有0-127,所以输入%80的时候会报错。

      (?url=%79转码后可以看到转成了y,?url=%7A转码后可以看到转成了z,后面一直到%7F都是非法符号,会返回Invalid URL)

      Ascii码表可以参考:

      

 

 

      OK,继续做题,给url参数传入参数%80,Django报错,根据报错知道网站是Django开发    

          

 

葡京在线网投       结合PHP可以通过在参数中注入@来读取文件的漏洞,首先看看配置文件settings.py,看看有没有相关的有用的信息。

      Payload:?url=@/opt/api/api/settings.py

          

      得到数据库名为 database.sqlite3

      再获取数据库内容

      Payload:?url=@/opt/api/database.sqlite3

 

      

 

      感谢dalao们写的wp,让我获益匪浅,我也要养成写博客的习惯QAQ。哈哈哈

      

葡京在线网投      参考博客:

      参考博客:

 

posted @ 2019-12-12 21:02  ckha  阅读(...)  评论(...)    收藏