BugKu文件上传测试

版权声明:本文由CliffordWR原创,转载请注明出处。 https://blog.csdn.net/CliffordR/article/details/82974655

  今天在BugKu刷web题的时候,遇到了一个需要文件上传的题目,叫做文件上传测试,这个方法是我之前没有和大家分享过的,今天和大家分享一下个关于文件上传测试这道题目所涉及的有关过程,我是一个刚入坑的小白,分享出WriteUp的目的就是和广大刚入门的小白一起进行学习交流,有误之处还请路过的大牛多多指正。
打开这道题,题目要求上传一个PHP文件
在这里插入图片描述
  我们很乖的找了一个php文件上传了(php文件可以新建一个记事本改后缀为.php即可)但是,上传后发现
在这里插入图片描述
让上传php却显示不是图片文件,那我们再上传一个图片文件试试
在这里插入图片描述
上传.jpg后,却显示不是PHP文件。现在我们用BP来抓包改包试试。使用前一定先进行浏览器的代理。代理后上传文件,

右击,send to repeater或者是Ctrl + R,
在这里插入图片描述
到这一步,就完成抓包活动了,接下来进行改包,把上图中的rar.jpg,改成rar.php,Go一下
在这里插入图片描述
得到了flag,BurpSuite真是强大啊。
  在做文件上传的题目的时候,常常会遇到让你上传一个jpg文件,但是你传入后,他就会报错,跟你说让你传入一个php文件,这根本就是前后矛盾的两个要求。
00截断是文件后缀名就一个%00字节,可以截断某些函数对文件名的判断,在许多语言函数中,处理字符串的函数中0x00被认为是终止符。
例如,网站上传函数处理xxx.php%00.jpg时,首先后缀名是合法的jpg格式,可以上传,在保存文件时,遇到%00字符,丢弃后面的jpg,文件后缀最终保存的后缀名为xxx.php
例如:head.php.jpg,head.php_.jpg,head.php%00.jpg
  然后我们开启Intercept,点击文件上传,这时我们会发现页面没有跳转,说明这个包已经被我们拦截下来了,然后我们再把这个包发送到Repeater里面去,对这个包进行一个分析,然后这时我们可以用到00截断,自己手动构造一个上传的文件,1.php .jpg,然后我们去Hex查看,发现只需要把20改为00,再回到Raw,发现空格已经变成一个框框,框框表示一个空字节,这时我们只需要Go一下 即可完成

猜你喜欢

转载自blog.csdn.net/CliffordR/article/details/82974655