Python | 7招教你识别一个网站是否是Django后台
戳藍字“CSDN云計算”關注我們哦!
作者 l 上海小胖? ?
來源 l Python專欄(ID:xpchuiit)
轉載請聯系授權(微信ID:pythonzhuanlan)
目錄:
1.?利用Debug模式異常頁面判斷
2. 通過CSRF Token驗證
3. Django Admin
4. 通過HTTP頭
5. 拼湊細節
6. 通過一些第三方模塊的特點判斷
7. 分析靜態文件
最近事情有點多,一直沒有時間寫原創,而又一直想寫點什么,今天早上正好空下來,我就來寫一篇Python的吧,這周末我總結下最近遇到的事情和以后的打算,和大家共勉。
平時開發們用Django寫網站,你作為黑盒測試來說可能不需要關心以下的問題,但白盒呢?所以黑盒不想提升一下自己的能力嗎?
今天我們就來說下,如何測試一個網站的后端是由Django編寫的。
1. 利用Debug模式異常頁面判斷
最簡單的就是,當DEBUG模式開啟時,訪問不存在的頁面或出錯的頁面會有特殊的異常拋出。像這樣的頁面,我稱之為黃代碼(哈哈哈,寫Django的自己知道,是不是經常會有),就可以確定是Django了
2. 通過CSRF Token驗證
訪問一個包含表單的頁面,表單中會有一個hidden input,用來存儲CSRF檢測的Token,其名字比較獨特,csrfmiddlewaretoken:
遇到有這個名字的表單,基本可以確定是Django。
假如開發者將?csrfmiddlewaretoken?這個名字換了,怎么辦?
我們可以把剛剛的hidden input 給刪了,然后登陸,因為缺少CSRF TOKEN,會返回一個Django的CSRF TOKEN錯誤頁面給你:
3. Django Admin
安裝Django的時候會自帶一個后臺,地址是/admin(不過大多數網站會替換后臺地址):
遇到這個樣式的后臺界面,可以確定是Django。
4. 通過HTTP頭
有的Django站點會返回Server頭:
雖然通過這種方式不能100%確定是Django后臺,但范圍就縮的很小了,是個Python,也就那幾套Web了。
5. 拼湊細節
比如,Django默認找回密碼的鏈接是?/password_reset/?,郵件發送成功是?/password_reset/done/?,找回密碼鏈接是?reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/?,找回密碼成功是?/reset/done/?,正常修改密碼是?/password_change/?,修改成功是?/password_change/done/?。
不過這些鏈接都可以改,只能用作參考。
再比如,django文件上傳的目錄通常叫?media?,注冊時密碼要求8位以上數字加字母,分頁通常是??page=2?而不會是?/page/2/?,表單輸入框的id通常是?id_xxxx?,中文的情況下還會有一些特定的翻譯語句,如?請上傳一張有效的圖片。您所上傳的文件不是圖片或者是已損壞的圖片。?、?CSRF驗證失敗. 相應中斷.?等。
6. 通過一些第三方模塊的特點判斷
Django之所以好用,因為其代碼耦合性很低,所以有豐富的第三方模塊可以直接使用。通過這些模塊的特點也能判斷目標網站是否是Django。
常用的第三方模塊有django-rest-framework、django-debug-toolbar、django-bootstrap3、django-filter、django-cron、django-allauth、django-simple-captcha等。
比如,django-rest-framework會有一個調試頁面:
再比如,django-simple-captcha生成的驗證碼會包含一個名字是?captcha_0?,值為40位hex的隱藏輸入框。
這些第三方庫的特點也可以輔助你判斷,就是需要收集與細心觀察了。
7. 分析靜態文件
有的網站可能修改了Django的后臺地址,但Django后臺所使用的靜態文件地址通常沒有修改,也較難修改。
訪問這些靜態文件地址,看看內容是否是Django的這一套,就可以確定目標是否為Django,如 :http://0.0.0.0:8001/static/admin/css/dashboard.css
但這個方法有個局限,如果目標網站沒有使用Django自帶的django-admin(未將其包含在settings.py的INSTALLED_APPS中),就沒有這個靜態文件了。
本文來源:公眾號 @Python專欄,作者上海小胖,四大咨詢TechLead,mongoDB Professional 獲得者。「Python專欄」專注Python領域的各種技術:爬蟲、DevOps、人工智能、Web開發等。還有「大航海計劃」,各種內推活動。
1.微信群:
添加小編微信:color_ld,備注“進群+姓名+公司職位”即可,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2.征稿:
投稿郵箱:liudan@csdn.net;微信號:color_ld。請備注投稿+姓名+公司職位。
推薦閱讀
這樣學算法,包會包懂so easy~
20k~50k,“寒冬季”一線城市技術人才依舊緊缺,千里馬,趕緊來投!
20張圖表達程序員的心酸
Python 爬取愛奇藝騰訊視頻 250,000 條數據分析為什么李誕不值得了?
這位 50 歲的海歸程序員,當著老板還在天天改 Bug
人工智能涼涼了?中國 AI 人才缺口高達 12113 個!
可替代Android的6大開源移動操作系統
↓點擊“閱讀原文”,打開APP 閱讀更順暢
總結
以上是生活随笔為你收集整理的Python | 7招教你识别一个网站是否是Django后台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python脚本限制_解决python
- 下一篇: 新公司成立之后要干嘛 经验技巧了解一下