upload-labs第1关-第10关过关教程

pass-01

第一种方法:

0c218c98a6f0920a3e1d9ec650f91a72.png

上传一句话木马

发现该文件不允许上传,请上传.jpg|.png|.gif类型的文件,当前文件类型为:.php

2c4da9ec40c7776487d9432c79c1b52b.png

既然是js前端校验,那么我们就来看看源代码

1bcb0917a7b25fa8089e5f307d5d1403.png

可以看到js定义了一个白名单,只允许上传.jpg|.png|.gif格式的文件,并且对上传文件的后缀名同白名单做了对比校验。

对于js校验,我了解的有三种方式可以进行绕过

删除js校验代码

通过审查元素我们可以发现上传这里是调用了checkFile函数的将其删除即可

5593784c7d2830b2c835e83d338e71e2.png
57b9b349839660f8d5b52ccd6199a76d.png

此时php文件上传成功

d70d49b308cf8ea9dabeafa926263b22.png
2ba3af07ec7798881f3dda4b3d5eb254.png

 

第二种方法:

先改文件后缀名通过js校验再抓包更改后缀上传至服务器

bf3594b163732fde9583bf8f26697150.png
41dd4663c02f546be2b344a2bcf423a1.png

修改后:

760ca4be6d90d7822b11f576abe13ecc.png

此时上传成功

bfc2017c202d1b841326b69b96fa9a16.png

访问上传地址

2e7acd3dd2fac43a3c1551f1478e7f9d.png

 

pass-02

只需要用burp修改一下mime就能上传成功

(1) 上传1.php的文件

(2) 通过burp抓包,修改文件类型为image/jpeg、image/png、image/gif

(3) 再发包成功上传

4b0ab83232dd1c5b713bf9d96e5b243f.png

 

129017be78cca35b056f6aff80277dd5.png

此时上传成功

eaa1e586fb5a66122f73be63ec96ef77.png

 

pass-03

(绕过php黑名单)

上传PHP文件失败,根据返回的页面数据,判断应该是做了简单的黑名单处理。所以我们可以使用一

些其他可解析的文件因此我可以找其他后缀名当做php文件执行。

符合的后缀包括 php、php3、php4、php5、phtml、pht等,有时候需要挨个进行尝试

f8de4d189454d6a00120dd126f964a35.png

打开配置文件---打开httpd.conf

修改代码,去掉注释符#

470372a563976a288c02fc4e77ae1772.png

修改完成后保存重启即可

e889ef46991a391980409d5a9106d4e2.png

 

 

pass-04

d54799765f2b4dfcadddaa87a80921bd.png

本关过滤了所有可能的脚本文件后缀名,但唯独没有过滤.htaccess文件,我们可知先上传.htaccess文件

这种情况,我们可以尝试上传一个.htaccess配置文件,将4.png图片当作php代码进行解析,首先创建一个.htaccess文件,里面写上代码

SetHandler application/x-httpd-php

这串代码的意思是如果文件中有一个4.png的文件,他就会被解析为.php,把这个文件上传上去。

上传上去之后,我们在把图片用Notepad打开,里面写上php代码。再进行上传。

最后我们访问这个4.png文件

d500af03f97b891c7d832c94e4c12ca9.png
0e82c367807589ce94b4a9dc3dfd0cfe.png

访问上传图片地址

a0ed266b5841826d318062e08455f96f.png

 

pass-05

文件后缀绕过

根据Apache文件解析机制,从右向左开始解析文件后缀,若后缀名不可识别,则继续判断直到遇到可解析的后缀为止

adef541968eee2b72fd5d2d53e3bfc19.png

上传后访问

fe59e820054a6419052ad2dc43b5f903.png

 

pass-06

大小写绕过

这一关没有强制将大写转换为小写,所以我们可以上传纯大写或者大小写结合的后缀名

b6549571a2175378556282798f52138c.png

上传成功后访问

66c5ec3eb66afc21580adc30f94127db.png

 

pass-07

直接看源代码,发现没有首尾去空。上传php文件,抓包在后面加空格。

86c828040933a510c3846d56cced9ce1.png

上传成功后访问

dcb47f672ebe62a25916286e9e31799b.png

 

pass-08

第八关我们可以发现没有删除文件名末尾的点,和第七关思路一样,就是把空格换成点

上传成功后访问

4144f52f0cec8172158436dbbf7be821.png

 

pass-09

第九关查看代码发现没有去除字符串::$DATA,和第七八关一样,直接上传,在数据包的php后面直接加上::$DATA

575fdd683cbe0d37858cd2233cb3b591.png

上传成功后访问

e031d728a2605fcdaa3a3aa3f9837644.png

 

pass-10

这一关的思路是它没有循环验证,也就是说这些收尾去空,删除末尾的点,去除字符串::$DATA,转换为小写这些东西只是验证了一次。所以我们的绕过思路就很简单,在数据包中把后缀名改为.php. .说一下他的验证过程,首先他发现有一个点,这时会把他去掉,又发现有一个空格,也会把它去掉,我们这时还有一个点,也就是.php. 由于他只是验证一次,所以不会在去掉我们的点,这时就可以上传成功,也可以解析成功。

6db85eff6cb6b7bed31ec6e9e93e0c35.png

上传成功后访问

474e704e3acf77f4d9456ca88b8f7ac4.png

 

如果大家还有什么其他闯关思路请在评论区留言~~~

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值