怎么做跑腿網(wǎng)站如何建網(wǎng)站詳細(xì)步驟
Sql注入
1、sql注入漏洞原理
開發(fā)者沒有在網(wǎng)頁(yè)傳參點(diǎn)做好過濾,導(dǎo)致惡意 sql 語(yǔ)句拼接到數(shù)據(jù)庫(kù)進(jìn)行執(zhí)行
2、sql注入分類
聯(lián)合注入 、布爾盲注 、時(shí)間盲注 、堆疊注入 、寬字節(jié)注入 、報(bào)錯(cuò)注入
3、堆疊注入原理
在 mysql 中,分號(hào) 代表一個(gè)查詢語(yǔ)句的結(jié)束,所以我們可以用分號(hào)在一行里拼接多個(gè)查詢語(yǔ)句
4、寬字節(jié)注入原理
a 數(shù)據(jù)庫(kù)使用 gbk 編碼
b 使用反斜杠進(jìn)行轉(zhuǎn)義
5、報(bào)錯(cuò)注入原理:
a 報(bào)錯(cuò)注入函數(shù),例如:floor() 、group by 、exp() 、updatexml() 、extractvalue()
6、Dnslog注入原理
a 利用 load_file() 函數(shù)讀取共享文件
b共享文件形式:\hex(user()).dnslog.cn/ 或者 \host\
c 利用 mysql 的 load_file() 函數(shù)解析拼接過的 dnslog 域名,進(jìn)而帶出數(shù)據(jù)
7、聯(lián)合注入的步驟
a 找傳參點(diǎn)
b 判斷閉合符
c 判斷列數(shù)
d 判斷顯示位
e 查詢database()
f 查表
g 數(shù)據(jù)
8、盲注分類
a 布爾盲注(頁(yè)面回顯 長(zhǎng)度 :burp 里的 Content-Length )
b 時(shí)間盲注(頁(yè)面回顯 時(shí)間 :burp 包的 右下角 )、Dnslog
9、盲注函數(shù)
if() 、sleep() 、substr() 、left() 、limit 、ascii() 、length()
10、判斷閉合符方式:
構(gòu)造真和假:id=1 and 1=1 、id=1’ and 1=2 、=1" or 1=1 、') or 1=2 、and 234=234 、and 1 、or 1 、and 1^1 、&&1 、||0
11、sql注入繞waf
a 代替空格:/**/ 、/!/ 、+ 、%09 、%0a 、%00 、括號(hào)
b 關(guān)鍵字:16進(jìn)制 、char() 、字符串拼接
c 等價(jià)函數(shù)替換:sleep()==benchmark() 、if()==case when then else end 、ascii()==ord() 、substr()==substring()
d 內(nèi)聯(lián)注釋:/*! */
12、sqlmap常用參數(shù)
a -r :用于post型注入,指定 txt 文件的 post 數(shù)據(jù)包
b -u :指定url,通常用于 get 型注入
c -p:指定注入點(diǎn),例如: python sqlmap.py-u http://127.0.0.1/index.php?id=1&mid=2&page=3 -p “page”
d * :指定注入點(diǎn),例如:python sqlmap.py-u http://127.0.0.1/index.php?id=1*&mid=2&page=3* 注意:* 號(hào)也可以用于偽靜態(tài)的注入,用法同前面一樣,直接在注入點(diǎn)后面加 *
e -m :用于sqlmap批量跑注入,指定一個(gè)含有多個(gè) url 的 txt 文件
f --os-shell :用戶獲取 shell
g --os-cmd :執(zhí)行系統(tǒng)命令
h --tamper :指定繞過用的腳本文件
i --level 3 :指定測(cè)試等級(jí),等級(jí)越高,檢查項(xiàng)越多,共 1-5 個(gè)等級(jí)
j --risk 3 :指定風(fēng)險(xiǎn)等級(jí),等級(jí)越告,payload 越復(fù)雜,共 1-3 個(gè)等級(jí)
k --random-agent :指定隨機(jī) agent 頭
l --batch :默認(rèn)選項(xiàng)
m --dbms :指定數(shù)據(jù)庫(kù)類型
13、sql注入獲取 webshell 的方式
a 寫文件(需要寫權(quán)限)
b 寫日志文件(不要學(xué)權(quán)限,但是需要通過命令開啟日志記錄功能,而且還需要把日志文件的路徑指定到網(wǎng)站根路徑下面)
14、sql注入防御
a 過濾敏感字符,例如:information_schema 、into out_file 、into dump_file 、’ 、" 、()
b 預(yù)編譯
c 站庫(kù)分離:增加攻擊者的時(shí)間成本、防止通過數(shù)據(jù)庫(kù)拿到webshell
15、mysql提權(quán)方式
a mof提權(quán)
b udf提權(quán)
XSS:跨站腳本攻擊
1、XSS原理
開發(fā)人員沒有做好過濾,導(dǎo)致我們可以閉合標(biāo)簽進(jìn)而插入并執(zhí)行惡意JS代碼
2、xss類型分類
a DOM型 :由 DOM 文檔完成解析
b 反射型 :即插即用,沒有存儲(chǔ)在數(shù)據(jù)庫(kù)里面
c 存儲(chǔ)型 :被存儲(chǔ)在數(shù)據(jù)庫(kù)里面,造成持久型的攻擊
3、常用的JS函數(shù)
a document.cookie() :彈出當(dāng)前網(wǎng)址的瀏覽器 cookie
b console.log(‘xss’) :在控制臺(tái)輸出日志
4、繞過方式
a 改變大小寫:
b 編碼繞過( html 實(shí)體編碼、 十進(jìn)制十六進(jìn)制八進(jìn)制編碼、 unicode 編碼)、
c 關(guān)閉標(biāo)簽:利用大于號(hào) > 關(guān)閉標(biāo)簽使得xss生效
d 雙寫?zhàn)堖^:<scr
e 可以使用 空格 , 換行 ,tab 鍵或者 /**/ , /!a/,的形式繞過 關(guān)鍵詞的檢測(cè)
f 用/代替空格
g 用 反引號(hào) 代替 括號(hào) 、雙引號(hào)
h 用 throw 代替括號(hào)
i 用 html 實(shí)體編碼 : 代替 冒號(hào)
j 用 jsfuck 編碼繞過大部分字符過濾
5、掃描工具
xsstrick
6、XSS釣魚平臺(tái)
kali工具:BEEF
免費(fèi)平臺(tái):自行搜索
7、xss防御
過濾敏感字符
a 例如:aler() ,script ,onerror
b 增加 httponly :禁止前端執(zhí)行JS代碼
XXE:外部實(shí)體注入
1、漏洞原理:
PHP開啟 外部實(shí)體引用 傳入的 xml 數(shù)據(jù)未經(jīng)過過濾
2、漏洞特點(diǎn)
a 傳參數(shù)據(jù)是以 xml 標(biāo)簽的形式
b 相應(yīng)包里的 Content-type:text/xml
3、攻擊手法
a 利用 file 協(xié)議讀取文件
b 利用 http 協(xié)議進(jìn)行端口探測(cè),例如:http://127.0.0.1:22
c 利用 php 偽協(xié)議讀取文件
4、盲XXE
核心:加載執(zhí)行遠(yuǎn)程xml文件,造成數(shù)據(jù)外發(fā)的效果
5、防御
關(guān)閉外部實(shí)體功能:libxml_disable_entity_loader(ture);
文件上傳
1、漏洞原理
開發(fā)人員未在上傳點(diǎn)對(duì)文件名和文件內(nèi)容做嚴(yán)格的過濾
2、繞過黑名單
1 特殊后綴名繞過:php3-php5 、 phtml 、通過修改 httpd.conf 文件按可以實(shí)現(xiàn)解析任意后綴名
2 通過上傳 .htaccess 文件可以實(shí)現(xiàn)解析任意后綴名
3 上傳 .user.ini 文件,利用包含實(shí)現(xiàn)getshell
4 空格繞過,利用的是 windows 和 linux 不允許文件名出現(xiàn)包括 空格 在內(nèi)的特殊字符,例如上傳:1.php[空格]
5 點(diǎn)繞過,windows 不允許出現(xiàn)點(diǎn)結(jié)尾的文件名,會(huì)自動(dòng)去掉文件名后面的點(diǎn), linux 允許出現(xiàn)點(diǎn)結(jié)尾的文件
6 流文件繞過,windows 中,:: D A T A 符號(hào)后面的內(nèi)容會(huì)被當(dāng)成字節(jié)流數(shù)據(jù),上傳之后會(huì)自動(dòng)去掉 : : DATA 符號(hào)后面的內(nèi)容會(huì)被當(dāng)成字節(jié)流數(shù)據(jù),上傳之后會(huì)自動(dòng)去掉 :: DATA符號(hào)后面的內(nèi)容會(huì)被當(dāng)成字節(jié)流數(shù)據(jù),上傳之后會(huì)自動(dòng)去掉::DATA 以及后面的內(nèi)容
7 雙寫后綴名,例如上傳 1.pphphp ,只適用于將 php 替換為空的情況
3、繞過白名單
1 00 截?cái)?/p>
2 配合文件包含
4、對(duì)文件內(nèi)容進(jìn)行繞過
1 填充垃圾字符
2 免殺
5、繞過前端驗(yàn)證
1 在瀏覽器關(guān)閉前端 JS 功能
2 burp 抓包修改
文件包含
1、文件包含函數(shù)
a include() 、 require 、 include_once() 、 require_once()
2、文件包含支持的協(xié)議
a php 偽協(xié)議:fiter 、 input 、 data 、 zip 、phar
b file 協(xié)議
c http 和 https
3、利用條件
a 本地文件包含不需要開啟 allow_url_* 參數(shù)
b 部分偽協(xié)議需要開啟一個(gè)或者兩個(gè) allow_url_* 參數(shù)
4、防御
a 過濾關(guān)鍵字,例如:php:// 、 file:// 、 http://
b 關(guān)閉 allow_url_* 參數(shù)
命令執(zhí)行
1、拼接 & 、&& 、 | 、 ||
2、原理:在操作系統(tǒng)中, & 、&& 、 | 、 || 都可以作為命令連接符使用,用戶通過瀏覽器提交執(zhí)行命令,由于服務(wù)器端沒有針對(duì)執(zhí)行函數(shù)做過濾,導(dǎo)致在沒有指定絕對(duì)路徑的情況下就執(zhí)行命令
CSRF:跨站請(qǐng)求偽造
1、原理:在 cookie 有效期范圍內(nèi),誘使受害者點(diǎn)擊某個(gè)頁(yè)面,進(jìn)而執(zhí)行非受害者本意的操作。
2、同源策略內(nèi)容
主機(jī)、端口、協(xié)議
2、防御
a 驗(yàn)證 referer
b 加 token 驗(yàn)證
SSRF:服務(wù)器請(qǐng)求偽造
1、原理
大都是由于服務(wù)端提供了從其他服務(wù)器獲取數(shù)據(jù)的功能且沒有對(duì)目標(biāo)地址做過濾與限制。比如從指定URL地址獲取網(wǎng)頁(yè)文本內(nèi)容,加載指定地址的圖片,下載等等。
2、支持的協(xié)議
a http://
b https://
c dict://
d ftp://
e file1
f php 偽協(xié)議
g gopher://
3、危害
a 內(nèi)外網(wǎng)的端口和服務(wù)掃描
b 主機(jī)本地敏感數(shù)據(jù)的讀取
c 內(nèi)外網(wǎng)主機(jī)應(yīng)用程序漏洞的利用
d 內(nèi)外網(wǎng)Web站點(diǎn)漏洞的利用
4、防御
a 過濾 file:// 、 gocher:// 等,過濾 端口
b 把網(wǎng)站需要訪問的內(nèi)網(wǎng)資源路徑寫死,不從外部接收
信息泄露
1、原理:
信息泄露可能是不慎泄露給瀏覽該網(wǎng)站信息用戶的,也有可能是攻擊者通過惡意的交互從網(wǎng)站獲得數(shù)據(jù)。例如.svn、.git、.ds_store
2、利用手法:
a 通過 robots.txt 泄露網(wǎng)站隱藏目錄/文件.或者站點(diǎn)結(jié)構(gòu)
b 網(wǎng)站站點(diǎn)的 備份文件 未刪除導(dǎo)致的泄露,可能會(huì)泄露網(wǎng)站源代碼
c 沒有正確處理網(wǎng)站的一些 錯(cuò)誤消息 ,在錯(cuò)誤消息中泄露數(shù)據(jù)庫(kù)表,字段等
d 一些高度敏感的用戶信息,銀行賬號(hào)等泄露
e 在源代碼中泄露數(shù)據(jù)庫(kù) 賬號(hào)密碼 ,等等(GitHub)
f 網(wǎng)站某些程序的細(xì)微差別提示是否存在某些資源,用戶名
中間件漏洞
Apache
a 解析漏洞:多后綴名解析漏洞(從后往前解析,一直解析到可識(shí)別的后綴)、罕見
b 后綴名解析漏洞、.htaccess解析漏洞
命令執(zhí)行漏洞:CVE-2021-42013
IIS
a 文件名解析漏洞,從前往后解析,遇到分號(hào)就截?cái)?#xff0c;忽略分號(hào)后面的內(nèi)容
例如:1.asp;.jpg
b 罕見后綴名,例如:.asa、.cer、.cdx
c IIS 5.X/6.0的文件夾解析漏洞,例如:將文件夾以1.asp命名,該文件夾中的所有文件都會(huì)被當(dāng)做asp文件執(zhí)行:1.asp/1.jpg、1.asa/1.jpg、1.cer/1.jpg、1.cdx/1.jpg
d IIS 7.0/IIS 7.5的CGI解析漏洞,例如上傳1.jpg然后訪問1.jpg/.php
e IIS PUT文件上傳漏洞
f HTTP.sys遠(yuǎn)程代碼執(zhí)行漏洞:MS15-034
Nginx
a CGI解析漏洞,例如上傳1.jpg然后訪問1.jpg/.php
其他
1、IIS:目錄解析漏洞、分號(hào)截?cái)?、CGI解析漏洞、PUT文件上傳漏洞、MS15-034
2、Apache:多后綴名解析漏洞、目錄遍歷、命令執(zhí)行漏洞:CVE-2021-42013
3、Nginx:CGI解析漏洞
4、Tomcat:后臺(tái)部署war包、PUT文件上傳漏洞、反序列化漏洞、樣例目錄session操控漏洞
5、Weblogic:后臺(tái)部署war包、一大堆反序列化漏洞、未授權(quán)RCE漏洞
6、Jboss:后臺(tái)部署war包、一堆反序列化
框架漏洞
thinkphp5.x RCE
基本都是對(duì)模型,對(duì)方法的路由處理有誤導(dǎo)致RCE,反序列化漏洞的話需要有反序列化點(diǎn)
thinkphp5.0.x漏洞原因是對(duì)url處理有關(guān),導(dǎo)致遠(yuǎn)程命令執(zhí)行
Struts2
1、原理:struts2是一個(gè)框架,他在處理action的時(shí)候,調(diào)用底層的getter/setter來處理http的參數(shù),將每一個(gè)http的參數(shù)聲明為一個(gè)ONGL。導(dǎo)致命令執(zhí)行
框架特點(diǎn):文件后綴名”.action ” “.do”
2、例子:
S2-062漏洞形成的原因是struts在處理標(biāo)簽的name屬性時(shí),將用戶輸入當(dāng)作表達(dá)式進(jìn)行二次解釋,導(dǎo)致OGNL表達(dá)式注入。
s2 046 通過Content-Type這個(gè)header頭 filename 后面需要00截?cái)?#xff0c;注入OGNL語(yǔ)言,進(jìn)而執(zhí)行命令,通過不恰當(dāng)?shù)?filename 字段或者大小超過 2G 的 Content-Length 字段來觸發(fā)異常,進(jìn)而導(dǎo)致任意代碼執(zhí)行。
Shrio 反序列化
1、原理:Apache Shiro是一個(gè)Java安全框架,執(zhí)行身份驗(yàn)證、授權(quán)、密碼和會(huì)話管理,Shiro提供了RememberMe的功能,當(dāng)用戶關(guān)閉瀏覽器,下次再打開瀏覽器訪問時(shí),還是能記住我是誰(shuí),無需登錄即可訪問。
其實(shí)很多網(wǎng)站都有這功能,Shiro對(duì)RememberMe的Cookie做了加密處理,在CookieRememberMeManaer類中將Cookie中RememberMe字段內(nèi)容分別進(jìn)行序列化、AES加密、Base64編碼等操作,但是默認(rèn)的加密AES Key是硬編碼進(jìn)去的,都知道這個(gè)Key是什么,所以在逆向操作反序列化、Base64解密的時(shí)候,攻擊者就可以偽造惡意數(shù)據(jù)通過反序列化遠(yuǎn)程執(zhí)行命令。
Fastjson 反序列化
通過Fastjson反序列化漏洞,攻擊者可以傳入一個(gè)惡意構(gòu)造的JSON內(nèi)容,程序?qū)ζ溥M(jìn)行反序列化后得到惡意類并執(zhí)行了惡意類中的惡意函數(shù),進(jìn)而導(dǎo)致代碼執(zhí)行。
redis未授權(quán)
1、redis在6379端口
2、寫webshell
3、寫公鑰實(shí)現(xiàn)免密登錄
4、寫計(jì)劃任務(wù)實(shí)現(xiàn)反彈shell
5、主從復(fù)制getshell