进阶区
第一题 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码表可以参考:http://www.asciitable.com/
OK,继续做题,给url参数传入参数%80,Django报错,根据报错知道网站是Django开发
结合PHP可以通过在参数中注入@来读取文件的漏洞,首先看看配置文件settings.py,看看有没有相关的有用的信息。
Payload:[email protected]/opt/api/api/settings.py
得到数据库名为 database.sqlite3
再获取数据库内容
Payload:[email protected]/opt/api/database.sqlite3
感谢dalao们写的wp,让我获益匪浅,我也要养成写博客的习惯QAQ。哈哈哈
参考博客:https://blog.csdn.net/zz_Caleb/article/details/95041031
参考博客:https://blog.csdn.net/stepone4ward/article/details/94615617
原文地址:https://www.cnblogs.com/ckha/p/12031344.html