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

posted @ 2020-06-01 14:21  怪味巧克力  阅读(220)  评论(0编辑  收藏  举报