命令执行漏洞是指攻击者通过向受攻击的系统发送恶意代码或输入,使其执行未经验证的操作命令,从而获取系统的敏感信息或控制受攻击的系统。这种漏洞通常发生在 Web 应用程序或网络服务中,攻击者可以利用这些漏洞在系统中执行任意代码,从而导致系统崩溃或被入侵。
命令执行漏洞的原因通常是由于编程人员没有对输入数据进行有效的过滤和验证,允许攻击者向系统发送恶意数据。攻击者利用这些漏洞通常使用操作系统(如Linux、Windows)的系统命令,例如wget、curl、bash等输入,使得系统执行未经验证的命令。
为了防止命令执行漏洞的发生,开发人员应该在编程时采取以下措施:
尝试执行命令,127.0.0.1&&dir、127.0.0.1&&ls、127.0.0.1|ls均被屏蔽,所以无法入手,至此,没有收获到任何东西,唯一收获到的是网站使用的是url编码能够传入。
传递%80会出现报错,url编码使用的是16进制,80也就是128,ASCII码是从0-127,所以这个时候会报错。
发现是Django框架,所以根据Django的目录,我们使用@进行文件传递,对文件进行读取之后还会把内容传给url参数,如果像上面一样有超出解析范围的编码的时候就会得到错误信息。
搜索关键信息:database、settings等
发现database,访问database.sqlite3文件
http://61.147.171.105:51270/?url=@/opt/api/database.sqlite3
flag为:WHCTF{yoooo_Such_A_G00D_@}