好喽!
1 | <font size=10>**现在你看到的是week4**</font>**(恨声)** |
美好的一天从github突然又不抽风了开始
学习
一句话木马
Web安全-一句话木马
黑客技术:文件上传漏洞——一句话木马原理 - 知乎
Webshell:webshell就是以网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门,顾名思义,web的含义是显然需要服务器开放web服务,shell的含义是取得对服务器某种程度上的操作权限
Webshell通常被叫做入侵者通过网站端口对网站服务器的某种程度上操作的权限,由于webshell大多数是以动态脚本的形式出现,也有人称之为网站的后门工具,一句话木马、大马、小马都可以叫webshell。
而我们的一句话木马只需要一行代码的木马,短短的一行代码,配合webshell工具使用就会有很强大的效果。
为了绕过waf的检测,一句话木马出现了无数中变形,但本质是不变的:木马的函数执行了我们发送的命令。
各种语言的一句话木马
php
文件上传
upload-labs
搭建
PhpStudy下载安装使用教程,图文教程(超详细)
搭建upload-labs(windows)
质疑phpstudy,理解phpstudy,赞美phpstudy。。这也太方便了!
Pass-01
随机一个最简单的<?php phpinfo();?>
说只能jpg/png/gif文件
文件后缀jpg,bp抓包改filename后缀。。
看\WWW\upload-labs\WWW\upload,有php文件即可。。or打开http:xxxxxxxx/upload/webshell.php
Pass-02
一样
Pass-03
不允许上传.asp,.aspx,.php,.jsp后缀文件
文件上传漏洞asp、php、jsp、aspx如何绕过黑名单
Pass-04
此文件不允许上传
看看源码
1 | if (file_exists(UPLOAD_PATH)) { |
这个过滤让人眼前一黑的程度堪比某土豆出的ssti。。。感觉一般的改后缀救不了。。
.htaccess:
1 | <FilesMatch "jpg"> |
看眼http:xxxxxxxx/upload/webshell.php。。
泰库辣。。
Pass-05
此文件类型不允许上传
看看源码
多过滤了个.htaccess
开源码逐行对比一下//(目移
发现本题少了转换大小写$file_ext = strtolower($file_ext); //转换为小写
这句
后缀PHP,启动!
Pass-06
没过滤$file_ext = trim($file_ext); //收尾去空
尾巴加空
Pass-07
试了一下,估计是没去除文件名最后的点,加点试试
看眼源码,猜对了
Pass-08
::$DATA
Pass-09
嵌套绕过
研究源码可得会先删点再去空
“webshell.php. .”
Pass-10
上传”webshell.php”成功,但是看文件夹变成”webshell”了
研究一下源码,发现是从文件名中去除字符串
双写绕过看看pphphp
Pass-11
看看源码,只允许上传’jpg’,’png’,’gif’文件
发现其上传路径可控$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;
?save_path=../upload/webshell.php%00
Pass-12
和上一题一样但是post形式
%00 urldecoded一下
..
以下图片马的部分跟着wp过一遍的比较多。。(目移
Pass-13
随便一个图片1.jpgcopy 1.png /b + webshell.php /a 2.png
include.php?file=xxxxx.jpg
- 没有include.php自己建一个
Pass-14
试着跟上一题一样然后成功了、
getimagesize()简介
这个函数功能会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的
Pass-15
同上
exif_imagetype()
读取一个图像的第一个字节并检查其签名。
Pass-16
但是我之前的也可以用。。
Pass-17
条件竞争,不会,抄之
条件上传之竞争漏洞 - FreeBuf网络安全行业门户
条件竞争之文件上传
上传,bp的intruder爆破一下,然后可以写脚本,也可以像我一样狂按f5
Pass-18
浅试了一下。。上传路径好像有点问题。。。(沉默)
打开WWW文件夹后发现一排的水母图片的心情谁懂啊。。。
然后这题就是图片马加Pass-17这样。。。
又是f5按烂的一题
Pass-19
不知道为什么我/include.php?file=upload-19.jpg出来了
但是好像这题主要不考这个
- 00截断
- move_uploaded_file()特性:忽略掉文件末尾的
/.
- bp抓包,改成php/.
Pass-20
第二十关
这一关是利用数组绕过验证
十九关是一个黑名单,php/.就可以绕过,但是二十关他会检测文件后缀名,是一个白名单。所以把他拆分掉第三部分是.png,所以就会上传。实际上他上传上去的东西是
upload-21.php/.png 上传上去的东西就是upload-21.php。实现了绕过。
抄是抄完了,但是我不明白(茫然