相關作業總結

  • 2022 年 8 月 23 日
  • 筆記
# 總結這幾天的學習內容

# Pikachu的CSRF模組            apipost6(工具)

# GET:

皮卡丘的網址,修改資訊,進行抓包

最後總結:token
token如何防止CSRF
CSRF的主要問題是敏感操作的鏈接容易被偽造
每次請求,都增加一個隨機碼(需要夠隨機,不容易偽造),後台每次對隨機碼進行驗證
網頁接受從後台發過來的token,類型不可見。將其一併提交給後台進行驗證。每次刷新,後台發送過來的token都不一樣,起到了防止偽造的作用。

防範措施
增加token輸證(常用的做法):
1.對關健操作增加token參數,token值必須烈機,每次都不一樣;
關於安全的會話管理(避免會話被利用):
1,不要在客戶腦助保存部源資訊(比如身份認證資訊):
2.測試直統關閉,退出時,的會話過期機制:
3,設置會活過期機制,比如15分鐘內無操作,則自動登錄超時;
訪問控制安全管理:
1.敬感資訊的修改時需要對身份進行二次認證,比如修改帳號時,需亞判日密碼;
2.敏浸資訊的修改使用past,而不是get;
3.通過http頭部中的referer來限制原頁面
增加驗證碼:

一般用在登錄《防暴力破模),也可以用在其他重要資訊操作的表單中《需要考慮可用性】

# 二,JAVA的安裝遇到的問題

Java三大版本
Write Once,Run Anywhere
JavaSE: 標準版 (桌面程式,控制台開發…)
JavaME: 嵌入式開發 (手機,小家電…),已經涼了
JavaEE: E企業級開發 (Web端,服務端開發…),JavaSE為基礎



安裝開發環境
卸載JDk
刪除Java安裝目錄
刪除環境變數JAVA_HOME
刪除path下關於JAVA的目錄
Java -version
安裝JDK
百度搜索JDK8,找到下載地址
同意協議,下載電腦對應的版本,如64位作業系統下載 jdk-8u281-windows-x64.exe
雙擊安裝JDK
記住安裝路徑
配置環境變數
我的電腦-》屬性-》系統高級設置-》環境變數
系統變數 新建–> JAVA_HOME 輸入對應的jdk安裝路徑
path變數–>% JAVA_HOME%\bin
測試是否成功 cmd–>Java -version
J

自此,我的問題解決成功

# 三,文件上傳漏洞(二)

一,%00截斷和00截斷

二,靶場闖關

三,條件競爭

strrposs用函數,在於截取後綴,if:判斷 (inarray)是否匹配 到數值並執行程式碼,相反則執行else   tmp:臨時     HEX:查看網頁傳參的十六進位程式碼

截斷:有一個終止符  

1.php.jpg=>作業系統        1.php終止符號.jpg=>白名單檢測   jpg

move_uploaded_file()移動文件

點擊上傳=>臨時目錄=>移動出來重命名

黑名單不安全,白名單(不一定安全)

點是連接符,/:路徑,rand(10,99)=>隨機值10-99隨機選擇一個

date(「YmdHis」)=>時間日期        

把圖片直接塞入資料庫:

圖變文字,文字變圖

URL編碼=>%××××

GET可以接受URL編碼,而POST不能

//www.bejson.com/convert/ox2tr/     (做滲透,去截斷)

​	對一句話檢測:

​           一句話木馬改後綴名

​          渲染圖片,檢測圖片類型,圖片內容

​         圖片馬(圖片+一句話木馬)

/b:二進位複合    copy 1234.jpg/b+1.php 2222.jpg

gif繞過 不會去渲染前面幾行的程式碼       png繞過(操作起來很麻煩)

# 四,站長新動力

不能直接用控制台

然後在上面的網址com後填上?url="><script>alert(1)</script>//(標籤法)

大小寫:<Script>alert("en")</script>

事件法:<img src=1 οnerrοr=alert(1)>

偽協議法:<a href='' οnmοusemοve=alert('en')>click</a>

1)//:這個是協議,也就是HTTP超文本傳輸協議,也就是網頁在網上傳輸的協議。

2)www:這個是伺服器名,是指在網際網路上以超文本為基礎形成的資訊網。

3)php.cn:這個是域名,是用來定位網站的獨一無二的名字。

4)www.php.cn:這個是網站名,由伺服器名+域名組成。

5)/:這個是根目錄,也就是說,通過網站名找到伺服器,然後在伺服器存放網頁的根目錄

6:)article.html:這個是根目錄下的網頁

牢記知識點:rul接受用戶的輸入,get方式

# 五,手工注入

墨者靶場

是否有注入點,and 1=1網頁沒有變化, and 1=2網頁變化。

我們發現這裡存在sql注入

接下來進行排查欄位數,使用 order by 語句,開始測試,結果如下:

輸入1時無變化,直接增大到5試試看,如下:

頁面報錯了,證明他低於五個欄位

判斷列數:(有四列)null代替,第五列的時候報錯

利用回顯獲取資料庫名稱

查詢資料庫中的表:

分別查詢兩個表的欄位:(發現stormgroup_member表中有帳號和密碼

查詢stormgroup_member表的欄位:

帳號為:dsan13

密碼為:150046

# 六,文件上傳漏洞

一,客戶端檢測

二,服務端檢測

三,靶場闖關

客戶端校驗:一般是在月頁上寫一段Js腳本,用Js去檢測,校驗上傳文件的後紹名,有白名單也有黑名單。
判斷方式:在瀏覽載入文件,但還未點擊上傳按鈕時便彈出對話框,內容如:只允許上傳jpg/jpeg/.png後綴名的文件,而此時並沒有發送數據包,所以可以通過抓包來判斷,如果彈出不準上傳,但是沒有抓到數據包,那麼就是前端驗證
前薪驗證非常不可靠,傳正常文件改數據包就可以繞過,甚至關閉JS都可以嘗試曉過
墨白名單機制:
思名單:不允許上傳什麼
白名單:只允許上傳什麼
白名單比黑名單更安全
靶場第題://59 63.200.79.8016/Pass-01/ndex.php

用Burp抓包修改

文件上傳=>功能

上傳頭像,上傳照片,上傳文檔

上傳後端腳本,包含惡意語句並且能正常訪問,就可以控制伺服器

黑名單:不允許上傳什麼

白名單:只允許上傳什麼

安全中的概念:

黑名單:不允許名單的XXX

白名單:只允許XXX

白名單安全性要高於黑名單

分散式配置文件:

網站有自己規則:php

特例:如果我存在聽我的 重新定義規則

php=>windows機器里不在意大小寫(可以改後綴大小寫)

空格繞過法:

php   php空格  不相同   抓包修改

點繞過法:

 抓包修改

Windows文件流繞過:

抓包後綴加::$DATA

###### .php: :$DATA

點空點的組合

雙寫構建:雙寫繞過法

pphphp(抓包修改)(未做循環可用)

沒什麼基礎:PHP+python/golang

有點電腦基礎的:JAVA

比較厲害的:C+彙編

# 七,跨站請求偽造

一,什麼是CSRF?



Cookie代表你的身份許可權 存活周期

同源法則:同ip同埠同協議的屬於同源  共用Cookie

hack.zkaq.cn 1                bbs.zka2

CSRF:偷偷的讓瀏覽器發送數據包

A站點->JS讓你訪問B站點

受害者的瀏覽器上面執行的

B是正常網站,A是黑客搭建危險站點!
## (二)CSRF靶場演示

CSRF:防禦方式:

Cookie裡面有。傳參裡面有,要求對應才生效

Cookie=token=nf

Token一串隨機值

(Cookie和Token要求對應)

token=nf;newpasswd=123456

A=>B   csrf永遠不知道目標的Cookie

利用JS自動提交數據

通過Burp的工具生辰攻擊數據包

是針對你本地。修改參數

1,傳參地址要修改,肯定要寫到目標傳參

2,傳參內容,文件寫入的路徑


CSRF和xss有什麼區別:
CSRF:利用Cookie,但是無法獲取Cookie xss:獲取Cookie
雞肋漏洞組合拳:
CSRF self-xss :=>CSRF和反射型xss搭檔的時候會產生很不 
錯的效果
a.nf.com

後台存在反射性xss    直接打一個xss   並訪問它

# 八,XSS原理與解剖

SQL注入 =>用戶輸入的數據被當作SQL程式碼執行

XSS => 用戶輸出的數據會被當做前端程式碼執行 

 XSS:偷取用戶的身份憑證

HTTP他是無狀態無連接的協議

   Cookie:通行證

 document.cookie

JS操縱:

1、讀取資訊

2、可以發起請求(ajax 非同步傳輸)

 

讀取Cookie將Cookie發送出去成了一個攻擊手法

遊覽器法則:同源策略 同源性法則

同源:同協議 同域名/ip 同埠

XSS能竊取到的Cookie只能讀取當前觸發頁面同源下的Cookie

XSS三大類型:

反射型:非持久性生效的攻擊,僅僅作用一次(目標必須主動輸出惡意語句)

儲存型:惡意語句會被儲存住,別人訪問顯示的頁面就會中招

Dom型



XSS如何被觸發:

用戶輸出的數據被當作前端程式碼執行(JS程式碼)



 JS程式碼有三種觸發方法

1、標籤法:<script></script>

2、偽協議法:小眾協議叫做偽協議(自定義協議)

javascript:

<a href=javascript:alert(1)>123</a>

3、事件觸發法:on 專門表示事件(事件加在標籤內)

## DOM型和反射型有什麼區別?



XSS就是XSS。所謂「存儲型」、「反射型」都是從黑客利用的角度區分的。對於程式設計師來說意義不大,反而是誤導。只有「DOM-based」型略有不同。

XSS、SQL injection之類的漏洞,原理都是破壞跨層協議的數據/指令的構造。

如SQL注入,涉及應用層和資料庫層。協議是SQL查詢語言。對於應用層來說,一句sql是數據(字元串);對於資料庫層來說,一句sql是指令。sql注入的原理,就是破壞sql的構造。防禦的方法,就是用參數查詢(現代所有的資料庫驅動的api一定包含了)而不是自己拼sql字元串。這個已經是所有後端工程師的基本常識了。

而XSS,兩個層次是伺服器端和瀏覽器端。協議就是HTML/CSS/JavaScript。對於伺服器端來說,html是數據(字元串);對於瀏覽器端來說,html是指令。XSS的原理,就是破壞html/css/js的構造。

防禦的方法,一般認為是正確escape,就是替換尖括弧、引號等特殊符號。

但是這是不夠的,因為這隻解決了html的問題。考慮如下:

<script>var name = '<?= $name ?>';</script> 

這程式碼顯然有XSS隱患。

那麼我們escape一下,是不是就好了?

<script>var name = '<?= htmlspecialchar($name) ?>';</script> 

很遺憾這樣是沒用的。因為這裡是javascript輸出點,xss破壞的目標是破壞js構造而不是html構造。html構造中的關鍵字元是尖括弧、雙引號、「&」符號等。而js構造就複雜了,比如換行、注釋(//和/*)、引號(包括單引號)等都會改變構造。

為了確保js構造的正確,應該:

<script>var name = <?= json_encode($name) ?>;</script> 

不過這還是存在一個漏洞。(作為一個簡單的習題留給同志們。)

【另外PHP不同版本的json_encode的行為不一致,幾乎都有問題,雖然不至於直接XSS,但存在被利用的可能。】

顯然,PHP沒有提供比較便利的方式來確保程式碼的安全,這是那個年代(199x)伺服器端腳本技術的通病。遺憾的是,web技術發展到今天,即使是常見的現代Web模板,大多提供了默認的html escape,但對inline script中的XSS防禦就乏善可陳了。

## 一,被攻擊的對象不同

## 二,解析位置不同

## 三,存儲時間不同

## 四,允許輸入點不同

# 反射型與存儲型的區別:

## 記錄不經過後端

# 資訊收集都有哪些:



## whois(微步),網站架構,dns資訊(通過查找dns可以檢測到是否有子域名收集),子域名搜索,敏感目錄及敏感資訊,源碼泄露,脆弱系統(網路空間),旁站查詢,C段查詢,指紋資訊,埠服務,備案資訊,真實IP,探測waf,社工(朋友圈,空間,求職等),企業資訊(天眼查,企業信用資訊公式系統)

##