美文网首页
攻防世界WEB之CAT

攻防世界WEB之CAT

作者: Vophan | 来源:发表于2019-08-15 11:32 被阅读0次

    这道题脑洞挺大的,还没给hint,比较扯,不过知识点还是很有意思的

    0x00 预备知识点

    • cURL的post文件上传
    • php的curl上传组件
    • python字符编码
    • django的debug模式

    0x01 cURL

    什么是cURL?

    curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。

    它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,

    上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

    原来php默认并不进行此项功能的扩展,但还是有的,只是没有让它生效罢了。打开PHP安装目录,搜索以下三个文件 ssleay32.dll、libeay32.dll和 php_curl.dll,

    高级用法:

    curl post上传文件

    上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件,其实这个对于 curl 来说,也是小菜一碟。

    我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:

    curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
    

    0x02 PHP的cURL组件

    PHP中包含了cURL组件,语法和cURL差不多,在PHP5.5后,CURL_SAFE_UPLOAD选项会控制是否使用新的上传方式。

    具体的参看这篇文章:https://jasonhzy.github.io/2016/05/04/php-curl-file/

    0x03 python的字符编码

    总的来说字符编码是python的一大败笔。

    具体的参看这篇文章:https://www.cnblogs.com/huxi/articles/1897271.html

    而在这道题中,django后端使用的gbk编码,超过编码范围的内容会引起报错。

    0x04 django的Debug模式

    对于django这样的后端框架,我们可以在项目的settings.py中设置打开debug模式,这样我们在出错的时候就可以看到具体的信息了。

    对于这道题,他开了debug模式。

    0x05 解题

    首先,第一眼看到这道题,ping?这不就是一个很经典的命令注入?但是事情没有那么简单。

    我们发现127.0.0.1;ls还是其他的payload都会显示invalid url,开始我想的是可能有过滤,然后各种绕过,

    结果都没用。最后看了WP,才知道是怎么回事。

    发现命令注入不行,然后进行FUZZ测试(扯淡),然后发现了我们输入字符编码,不会报错,但是%80会出错,于是我们看到了django的报错信息,我们知道了gbk的编码方式,也发现了接口与请求方式。

    post http://127.0.0.1/api/ping

    这样,我们就知道了,这个应用的整体架构

    我们给php发出请求,php把请求发送给本地部署的django,然后得到结果

    结合hint:RTFM of php cURL

    我们就知道这道题该怎么做了:

    由于django本地部署,而且php使用的cURL组件,所以这里,我们使用前面讲的php的cURL文件上传,

    @/opt/api/database.sqlite3

    这样,我们就把这个数据库文件的内容post给了django,但是牛逼的因为编码问题,他报错了

    于是,就这么巧妙地,我们就看到了数据库里面的内容。

    尽管整个过程都写满了字,但是不得不说,设计的巧妙以及知识点的串联很有意思。

    相关文章

      网友评论

          本文标题:攻防世界WEB之CAT

          本文链接:https://www.haomeiwen.com/subject/kroajctx.html