文件上傳漏洞全面滲透分析小結
目录
0x00 文件上传场景
(本文档只做技术交流,切勿进行违法犯罪操作,请做一个好人,不给别人添麻烦)
文件上传的场景真的随处可见,不加防范小心,容易造成漏洞,造成信息泄露,甚至更为严重的灾难。
比如某博客网站评论编辑模块,右上角就有支持上传图片的功能,提交带有恶意字符串的图片后,就直接可以显示在评论中了,如图:
再次声明:大家在自己的搭建的环境里面测试,不要给别人造成麻烦哈。
文件上传漏洞是进行渗透是比较常见好利用的漏洞,利用它能够直接上传webshell,进行连接,是比较常见的攻击方式。针对文件上传场景检测和绕过进行了全面姿势总结。
0x01 渗透姿势全面分析
针对一个文件上传场景,首先判断是客户端JS校验还是服务器校验,判断依据:上传非法文件,返回结果是否很快?
1.客户端JavaScript检测
如果上传非法文件,返回结果很快,或者F12打开开发者模式,上传非法文件,发现没有网络请求,但是被拦截了,很有可能就是客户端进行了JS校验检测。这种前端采用JS限制上传类型和大小的方式:
很是鸡肋,绕过思路:1.直接本地禁用JS,不让其做检测 2.抓包,修改文件后缀名类型,绕过检测限制
2.服务器后端检测
服务器后端检测有较多方式,普遍分为文件类型检测,文件头类型,文件扩展名名单检测,文件内容检测,接下来进行简要分析。
a.文件类型检测
此类检测防护主要是从content-type进行检测,检验请求中content-type是否符合可接受的上传类型(如"image/gif","image/png","image/jpeg")
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name'];if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;绕过思路:抓包将content-type改为可接受图片形式,即可绕过
b.文件头类型检测
上个文件类型是检测content-type,比较好伪造,这个则是使用getimagesize()函数来获取文件的MIME类型,通过文件头进行判断文件类型
if(file_exists($filename)){
$info = getimagesize($filename);文件头就是文件特定的标志,如二进制PE文件的4D5A,bmp文件的424D,zip文件的504B0304,各种常见文件的文件头类型大家可以查找了解一下,常见图片文件头如下:
gif: GIF89a
jpg,jpeg: FF D8 FF
png: 89 50 4E 47 0D 0A
绕过思路:针对这种,上传木马恶意文件时,先使用编辑工具在数据最前面添加图片的文件头进行伪造,即可绕过
c.文件扩展名检测
这种类型有基于黑名单检测和白名单检测。通常基于黑名单是很不安全的,黑名单机制:只拦截名单中出现的扩展后缀名,其余默认放行。这就取决于名单中的扩展后缀名覆盖能力范围了,很难把所有的考虑全面,就很容易造成漏洞。
黑名单绕过思路:可以从服务器的解析特性进行分析,如特殊可解析后缀php3,php7,phtml,jspx等 如特殊的解析方式陌生后缀名,带换行后缀名,双后缀名等解析差异造成的漏洞。 还可以从混淆方面出发,后缀名大小写,点绕过,空格绕过,以及上传.htaccess配置控制文件权限和::$DATA数据流的使用
基于白名单相对于黑名单就安全很多了,要求只能是特定扩展名的文件才能够上传。
白名单绕过思路:MIME绕过,修改文件类型为白名单可接受的类型,以及%00,0x00截断绕过,这种场景针对save_path可控。
00截断原理其实很巧妙,利用场景是文件保存路径可控,这样一来我们上传的文件符合白名单就行,真正动手的地方在文件保存路径出,可以放上自己的webshell文件,然后在webshell文件后面添加%00,或0x00,再加一些字符,这样一来,系统在解析碰到00就会截断,后面字符就不起作用,只剩下前面的webshell文件名,就可以在url中进行访问了。%00和0x00的使用区别在于提交get请求时,是%00,会进行url自动解码动作,然后进入验证函数。0x00则是post请求直接进入验证函数。
d.文件内容检测
比较厉害的防护检测,就是针对内容做检测,这种防护能力比较强,但也不是不能绕过。自始至终,攻防都是在对抗中螺旋演进的。
这种检测防护基本都是从webshell具有的代表性敏感字符?或者危险敏感函数。
绕过思路:从特殊敏感字符开始进行Fuzz测试,探测webshell中有多少必要的字符存在被替换,如果构成webshell执行的字符
被替换得较多,剩下未过滤的字符的难以支撑webshell执行,可以换个角度利用系统,调用脚本语言,如
还有一种更强的基于内容检测机制,对上传的图片进行二次渲染,参考代码如下
//判断文件后缀与类型,合法才进行上传操作if(($fileext == "jpg") && ($filetype=="image/jpeg")){if(move_uploaded_file($tmpname,$target_path)){//使用上传的图片生成新的图片$im = imagecreatefromjpeg($target_path);if($im == false){$msg = "该文件不是jpg格式的图片!";@unlink($target_path);}else{//给新图片指定文件名srand(time());$newfilename = strval(rand()).".jpg";//显示二次渲染后的图片(使用用户上传图片生成的新图片)$img_path = UPLOAD_PATH.'/'.$newfilename;imagejpeg($im,$img_path);@unlink($target_path);$is_upload = true;}} else {$msg = "上传出错!";}主要就是后端调用了php的GD库,利用imagecreatefromjpeg()函数提取了文件中的图片数据,然后再重新渲染,这样图片中插入的恶意代码就会被过滤掉了,经过测试发现,不管是直接修改文件头制作图片马,还是利用copy命令制作的图片马,都无法避免其中的一句话被过滤掉。
绕过思路:借鉴二进制中钩子的思想,其实就是想在上传图片中找一块"地方",存储webshell,这块"地方"要求在后端处理后没有被过滤掉。那就上传一个正常的文件,然后下载下来,diff一下,查看哪些位置没有被改动过,然后添加webshell进行尝试。
0x02 安全小思考
以上防护和绕过姿势基本上都是从业务实战和CTF比赛中总结而来的,更多的时候需要各种信息进行综合利用,安全中攻击和防范永远是在对抗中相互成就的。敬畏前辈先验知识,展露后辈探索精神。
推薦系統
雨林木風 winxp下載 純凈版 永久激活 winxp ghost系統 sp3 系統下載
系統大?。?/em>0MB系統類型:WinXP雨林木風在系統方面技術積累雄厚深耕多年,打造了國內重裝系統行業(yè)知名品牌,雨林木風WindowsXP其系統口碑得到許多人認可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統,雨林木風 winxp下載 純凈版 永久激活 winxp ghost系統 sp3 系統下載,有需要的朋友速度下載吧。
系統等級:進入下載 >蘿卜家園win7純凈版 ghost系統下載 x64 聯想電腦專用
系統大?。?/em>0MB系統類型:Win7蘿卜家園win7純凈版是款非常純凈的win7系統,此版本優(yōu)化更新了大量的驅動,幫助用戶們進行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。
系統等級:進入下載 >雨林木風xp系統 xp系統純凈版 winXP ghost xp sp3 純凈版系統下載
系統大?。?/em>1.01GB系統類型:WinXP雨林木風xp系統 xp系統純凈版 winXP ghost xp sp3 純凈版系統下載,雨林木風WinXP系統技術積累雄厚深耕多年,采用了新的系統功能和硬件驅動,可以更好的發(fā)揮系統的性能,優(yōu)化了系統、驅動對硬件的加速,加固了系統安全策略,運行環(huán)境安全可靠穩(wěn)定。
系統等級:進入下載 >蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統下載
系統大小:0MB系統類型:Win10蘿卜家園在系統方面技術積累雄厚深耕多年,打造了國內重裝系統行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統下載,其系統口碑得到許多人認可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統,一直以來都以用戶為中心,是由蘿卜家園win10團隊推出的蘿卜家園
系統等級:進入下載 >蘿卜家園windows10游戲版 win10游戲專業(yè)版 V2023 X64位系統下載
系統大?。?/em>0MB系統類型:Win10蘿卜家園windows10游戲版 win10游戲專業(yè)版 ghost X64位 系統下載,蘿卜家園在系統方面技術積累雄厚深耕多年,打造了國內重裝系統行業(yè)的蘿卜家園品牌,其系統口碑得到許多人認可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統,一直以來都以用戶為中心,是由蘿卜家園win10團隊推出的蘿卜家園win10國內鏡像版,基于國內用戶的習慣,做
系統等級:進入下載 >windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網下載
系統大?。?/em>0MB系統類型:Win11蘿卜家園在系統方面技術積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網正式版可以更好的發(fā)揮系統的性能,優(yōu)化了系統、驅動對硬件的加速,使得軟件在WINDOWS11系統中運行得更加流暢,加固了系統安全策略,WINDOWS11系統在家用辦公上跑分表現都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運行環(huán)境安全可靠穩(wěn)定。
系統等級:進入下載 >
相關文章
- 安卓手機QQ 4.7.2正式發(fā)布 顯示在線好友的網絡狀態(tài)
- 瑞星安全隨身WiFi怎么用 瑞星隨身WiFi有何亮點以及使用方法
- 您的WiFi安全嗎?讓路由衛(wèi)士來為您把關讓它變得更快,更安全
- 大勢至局域網共享文件管理軟件詳細記錄服務器共享文件訪問日志、保護共享文件安全
- 金山毒霸發(fā)布全新的V11新春版:殺毒速度更快/軟件凈化
- WinXP如何進入安全模式?WinXP進入安全模式設置
- 怎樣消除免費WIFI的安全隱患?一張圖看懂免費WIFI的安全隱患
- 毒app優(yōu)惠券怎么獲得 毒app無門檻優(yōu)惠券攻略
- 京東通信卡流量超標怎樣關閉移動網絡?
- 詳解火絨安全軟件怎么樣
- Win10系統下安全登錄失敗初始化失敗怎么辦?
- 360安全衛(wèi)士怎么更改默認軟件?
- 360稱特斯拉應用存漏洞 特斯拉不安全?
- win10安全模式跳過開機密碼可行嗎
熱門系統
推薦軟件
推薦應用
推薦游戲
熱門文章
常用系統
- 1windows10家庭版下載 系統之家 x86改良版下載 戴爾筆記本專用
- 2Windows10電競戰(zhàn)斗版下載 雨林木風最新游戲版 x64位免密鑰 戴爾筆記本專用下載
- 3蘿卜家園win10專業(yè)版 Ghost系統鏡像下載安裝 V2022.06
- 4深度技術win10純凈版 免激活工具下載 x64位無病毒大神版 惠普電腦專用
- 5win10旗艦版系統下載 深度技術Windows10 x64位系統下載 永久激活
- 6蘿卜家園x64位純凈版 筆記本專用下載 win10無廣告不卡頓版 ghost鏡像下載
- 7技術員聯盟教育版國慶獻禮版下載 win10企業(yè)版 X64位 筆記本專用下載 v2023
- 8win7娛樂版 中文系統 ghost x64位 win7激活密鑰 無需激活碼 iso鏡像下載
- 9蘿卜家園x86家庭版 win7改良版下載 win7鏡像系統 免激活工具下載