[WUSTCTF2020]朴实无华1

进入环境就叫我hack它,主要是这个网页名称是什么东西,看不懂,源码也没什么提示,尝试扫描后台 

[WUSTCTF2020]朴实无华1_第1张图片

 扫出来一个robots.php,尝试访问[WUSTCTF2020]朴实无华1_第2张图片访问后,又得到一个路径

[WUSTCTF2020]朴实无华1_第3张图片

 访问后会得到一个假的flag

[WUSTCTF2020]朴实无华1_第4张图片

 在开发者工具中,找到可疑路径 

[WUSTCTF2020]朴实无华1_第5张图片

 得到一串源码,不过有些字是乱码

[WUSTCTF2020]朴实无华1_第6张图片

 应该是字符编码的问题,百度了一个插件 charset

修改为utf-8后,就不会出现乱码了

[WUSTCTF2020]朴实无华1_第7张图片

代码中首先要绕过的是intval函数,这里又涉及到一个intval函数的性质

[WUSTCTF2020]朴实无华1_第8张图片

 此函数在处理数据时会在接触到字符串时停止,因此如果输入100e2之类的数据,会解释成100,但后面在执行+1时,100e2是科学计数法,所以会解析成10000,因此此处使用100e2绕过

[WUSTCTF2020]朴实无华1_第9张图片

 第二处要传入的参数与其MD5值相等 

[WUSTCTF2020]朴实无华1_第10张图片md5=0e215962017

绕过成功 

[WUSTCTF2020]朴实无华1_第11张图片

最后一处需要绕过的地方是,strstr的字符串匹配,这里的意思是检测$get_flag中是否存在空格,如果不存在就将其中的cat替换为wctf2020

中心思想就是过滤空格和cat

[WUSTCTF2020]朴实无华1_第12张图片

 直接先利用ls查看文件,前面的都是访问过的,所以我们把目光放在这个奇特的名称文件上,过滤了空格我们可以采取 ${IFS}$9绕过,而且我们执行命令也不止一个cat能查看文件

[WUSTCTF2020]朴实无华1_第13张图片

 以下这三种都可以

num=100e2&md5=0e215962017&get_flag=more${IFS}$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag 

num=100e2&md5=0e215962017&get_flag=tac${IFS}$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag 

num=100e2&md5=0e215962017&get_flag=ca\t${IFS}$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag 

[WUSTCTF2020]朴实无华1_第14张图片

 绕过成功

你可能感兴趣的:(安全)