zoukankan      html  css  js  c++  java
  • Cat

    0x01

    首先这道题打开之后是一个页面,能过提交参数,题目提示我们这里输入域名

    这里我们尝试输入域名,比如baidu.com等,然后页面没有任何反应,那接下来我们试着输入百度的ip试试,通过ping www.baidu.com找到百度的ip

    结果如下:

    我们发现这里输入的应该是IP地址,那我们再试试127.0.0.1

    到这一步,我们可能都想到这里能不能执行命令呢?我们试试127.0.0.1 | ls

    可见这里无法执行命令

    0x02

    在?URL=传参这里,传入的是url编码之后的值,这里我们让它进行报错。因为url编码是16进制,转化为ASCLL码就是0-127,那我们穿一个超过127的就会引起报错,然后我们看它返回的报错信息,这里我传入了一个%90,结果如下:

    这里面爆出了很多内容

    从上面两处我们可以知道的信息有:

    1.这里使用的是python的脚本来执行ping

    2.这里使用了Django框架

    然后我因为做的是XCTF上的题,这里没有给出提示,比赛的时候,这道题还给了一道提示:

    RTFM of PHP CURL===>>read the fuck manul of PHP CURL???
    

    这个是关于php curl的,这里找到一些介绍:

    The full data to post in a HTTP “POST” operation. To post a file, prepend a filename with @ and use the full path. This can either be passed as a urlencoded string like ‘para1=val1¶2=val2&…' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data.

    当curl发送POST数据的时候,在文件名前面加上@并使用完整的路径。那么,文件类型可以在文件名后以type=mimetype的格式指定。可以将其作为urlencoded字符串进行传递,也可以作为以字段名为jian6,ziduan数据为值的数组进行传递

    简而言之:如果我们在文件前面加上@来传递文件,那么就会解析

    0x03

    由于这里是Django框架,所以这里存在settings.py配置文件,那我们就直接查看这个文件

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

    我们得到下图报错信息

    其中有数据库的信息:

    那我们就查看一下这个数据库

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

    直接搜索CTF,得到下图

    到这里拿到flag

  • 相关阅读:
    Nodejs学习(四)- express目录的分析
    为什么越来越多人选择小而美的公司?
    想要惊艳面试官?你一张嘴就输了
    别装了,你根本就不想变成更好的人
    大学生工资160元,不合情是否合理?
    你还能陪父母多久?
    为什么越来越多人选择小而美的公司?
    考上研后的生活居然是这样的…
    以钻石为灵感的 LOGO 设计作品
    关于JavaScript数组,你所不知道的3件事
  • 原文地址:https://www.cnblogs.com/Jleixin/p/13024972.html
Copyright © 2011-2022 走看看