Web-CTFHUB文件上传漏洞

Ctfhub文件上传总结

  • 一、无验证形式
  • 二、前端验证
  • 三、.htaccess
  • 四、MIME绕过
  • 五、00截断
  • 六、双写后缀

  文件上传漏洞是指攻击者上传了一个可执行的脚本文件到服务器,并执通过此脚本文件获得执行服务端命令的能力。这里上传的文件可以是木马,病毒,恶意脚本,钓鱼图片或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。

一、无验证形式

  既然是无验证,那我们就直接上传一个木马文件,登录服务器,查看服务器的文件信息,拿到我们想要的内容。
1.创建一个webshell.php文件,写入
Web-CTFHUB文件上传漏洞_第1张图片
2.上传该文件,用antSword(蚁剑)连接
3.拿到绝对路径和猜测网页路径,这里我猜是直接用我们现在所处的网页这里
4.添加服务器地址
Web-CTFHUB文件上传漏洞_第2张图片
5.还是上图,在添加上的服务器那里右击文件管理(file manager),就可以拿到我们想要的文件。
Web-CTFHUB文件上传漏洞_第3张图片

二、前端验证

  在文件上传之前,前端js代码会对文件后缀进行一次验证,我们有两种办法解决。
方法一:置禁用js代码,然后上传webshell
firefox——>about:config首选项——>关闭JavaScript
方法二:抓包,改文件后缀。
1.禁用js,就可以绕过js验证
Web-CTFHUB文件上传漏洞_第4张图片
2.f13查看网页源代码,发现能上传这几种文件
Web-CTFHUB文件上传漏洞_第5张图片
  按照第一个的解法,我们将webshell.php文件修改为webshell.php.png文件,然后上传,抓包,修改文件名在上传,就可以成功,之后的步骤就和第一个的方法差不多。

三、.htaccess

  .htaccess文件(分布式配置文件)提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。
  htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
  既然如此,我们只需上传一个htaccess文件,在文件里面写上php语句,是不是就实现了文件上传的漏洞利用了。
1.先在本地创建一个.htaccess文件

vi .htaccess

2.写入木马代码

AddType application/x-httpd-php .png //把png文件当作 php文件处理

SetHandler application/x-httpd-php		//也可以试一试这个,把所有文件当作Php文件来处理

3.上传./htaccess文件,让服务器执行我们的木马代码
4.上传木马文件和上面差不多,后缀名改为.png
5.用蚁剑连接,拿到flag.
Web-CTFHUB文件上传漏洞_第6张图片

四、MIME绕过

  MIME即文件类型检测"Multipurpose Internet Mail Extensions"是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
  浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。
  网站工作者为了防止,网站被挂马,所以要进行文件类型检测,只能上传特定的类型文件。我们也是利用这一特性,使用蚁剑和BS进行漏洞挖掘。
1.开始我们先对于服务器上传不同的文件,直至上传成功,然后利用BS进行抓包。查看报文的最后一段有Content-type字段部分,记住这一个类型,这是我们后面挂马能否成功的重要部分。
2.上传木马,修改Content-type,让服务器无法检测,反包,获取文件绝对路径。
Web-CTFHUB文件上传漏洞_第7张图片
3.接着就是使用antSword进行连接了,步骤和上面一样。

五、00截断

   PHP的00截断是5.2.x版本的一个漏洞,当用户输入的url参数包含%00经过浏览器自动转码后截断后面字符。


系统就会自动的将000后的字符忽略,只看到mohe.txt。所以我们这里就需要转包然后截断改包,在反包即可挂马。
1.用之前的webshell.php创建一个webshell.php.png的文本文件

sudo mv webshell.php webshell.php.png

2.上传文件 并且抓包,利用00绕过漏洞,改包,返包
Web-CTFHUB文件上传漏洞_第8张图片
3.反包之后就是使用蚁剑直接连接,拿到flag。

六、双写后缀

   服务器对不符合要求的文件后缀会替换为空,那么我们要怎么发现这个漏洞呢?换句话说我们怎么知道这里有双写后缀漏洞呢?在做任何一道WEB题目,都要查看一下源代码,这里我们查看一下源代码发现有这个漏洞,那就easy了。
1.将webshell.php改为webshell.pphphp,服务器会自动将php检测出来并且换为空,这不就真好符合我们的意思吗。
2.用BP抓包,直接梭。

你可能感兴趣的:(信息安全漏洞,kali,linux,web,安全漏洞)