ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

攻防世界 | Web-Cat

2022-08-14 12:31:04  阅读:248  来源: 互联网

标签:Web 编码 攻防 URL py django 字符 Cat settings


本题涉及到的知识点有很多:

1.cURL的post文件上传

2.php的curl上传组件

3.python的字符编码

4.django的框架知识

解题步骤

 

先按照它的要求随便输入一个域名:

 

是一个PING操作命令,到这里立马联想到了pikachu靶场,然后构造payload:

127.0.0.1|whoami

网页回显 Invalid URL,应该是对特殊字符做了限制

这里我想到了DNSLOG,

`whoami`.tiexb6.dnslog.cn结果还是行不通的。

 

在进行测试的时候,发现写在输入框的内容会回显到URL地址上,比如:

 

 

可以尝试利用URL编码看看有没有哪些字符没有被过滤,

因为ASCII码的编码范围0-127,总共128个字符,测试起来也不费事

 

(图没截全)

返回的字符长度有四种:

86845:80往后基本都是宽字节了

688:只有%30返回这个,因为%30转义过来是0,它会进行ping0.0.0.0操作

464:0-29,60,100-127,这边都是不合法字符

453:31-79。大多数都是数字字母。除了%40是@

发现从80-99返回的长度一样

 

 

那我们写个%99

 

 

返回一大串HTML代码,先给他复制出来打开

 

 

接触过Django框架的应该一眼就能认出来,这个是Django框架报错返回的页面

根据报错信息应该是将输入的参数传到了后端的django服务中进行解析,而django设置了编码为gbk导致错误编码了宽字符(超过了ascii码范围)。

 

网上搜了一下,似乎是题目有问题,原题中有关于@字符的用法,这里没有

 

这里提示了Django的绝对路径

需要懂一些django开发的基本知识,我感觉这道题涉及的面有点广了,django项目下一般有个settings.py文件是设置网站数据库路径(django默认使用的的是sqlites数据库),如果使用的是其它数据库的话settings.py则设置用户名和密码。除此外settings.py还会对项目整体的设置进行定义。

读取settings.py文件,这里需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面。

 

 

 

然后再页面源代码中提示了

 

然后用@读取url=@/opt/api/database.sqlite3

回显的还是HTML代码,复制出来打开,或者直接搜索’ctf‘看看

 

 

 

 

 

 

标签:Web,编码,攻防,URL,py,django,字符,Cat,settings
来源: https://www.cnblogs.com/mlxwl/p/16585215.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有