1、Windows命令
- 文件和目錄操作
dir
:列出當前目錄下的文件和子目錄。cd
:切換目錄,例如cd C:\Users
切換到C盤的Users目錄。md
或mkdir
:創建新目錄,如md testdir
。rd
或rmdir
:刪除空目錄,例如rd testdir
。copy
:復制文件,如copy source.txt destination.txt
。move
:移動文件或重命名,move oldname.txt newname.txt
可重命名文件,move file.txt C:\newpath
可移動文件。del
或erase
:刪除文件,del test.txt
刪除test.txt文件。
- 系統信息
systeminfo
:顯示詳細的系統信息,包括操作系統版本、安裝的補丁等。ipconfig
:查看網絡配置信息,如IP地址、子網掩碼等。tasklist
:列出當前正在運行的進程。taskkill
:結束指定的進程,例如taskkill /F /IM notepad.exe
強制結束記事本進程。
- 網絡操作
ping
:測試網絡連接,ping www.example.com
檢測與example.com的連通性。tracert
:跟蹤數據包到達目標主機的路徑,tracert www.example.com
。
2、Linux命令
- 文件和目錄操作
ls
:列出當前目錄下的文件和子目錄,ls -l
以長格式顯示詳細信息。cd
:切換目錄,cd /home/user
切換到/home/user目錄。mkdir
:創建新目錄,mkdir newdir
。rmdir
:刪除空目錄,rmdir emptydir
。cp
:復制文件或目錄,cp source.txt destination.txt
復制文件,cp -r olddir newdir
遞歸復制目錄。mv
:移動文件或重命名,mv oldfile.txt newfile.txt
重命名文件,mv file.txt /newpath
移動文件。rm
:刪除文件或目錄,rm file.txt
刪除文件,rm -r dir
遞歸刪除目錄及其內容。
- 系統信息
uname
:顯示系統信息,uname -a
顯示所有系統信息。cat /proc/cpuinfo
:查看CPU信息。cat /proc/meminfo
:查看內存信息。ps
:查看當前進程,ps -ef
顯示所有進程的詳細信息。kill
:結束進程,kill pid
結束指定PID的進程,kill -9 pid
強制結束。
- 網絡操作
ifconfig
或ip a
:查看網絡接口信息。ping
:測試網絡連接,ping www.example.com
。traceroute
:跟蹤數據包路徑,traceroute www.example.com
。netstat
:顯示網絡連接、路由表等信息,netstat -tuln
查看監聽的端口。
3、. 專業術語
- POC:全稱“Proof of Concept”,中文“概念驗證”,常指一段漏洞證明的代碼。
- EXP:全稱“Exploit”,中文“利用”,指利用系統漏洞進行攻擊的動作。
- Payload:中文“有效載荷”,指成功 exploit 之后,真正在目標系統執行的代碼或指令。
- Shellcode:簡單翻譯“shell 代碼”,是 Payload 的一種,由于其建立正向/反向 shell 而得名。正向代理與反向代理區別?
- 正向 shell:攻擊機A,受害者 B
正向 shell: A 主動連接 B,直接使用 ssh 命令;受害者的命令行的輸入輸出轉到控制端 - 反彈 shell:
控制端監聽在某 TCP/UDP 端口,被控端發起請求到該端口,將受害者的命令行的輸入輸出轉到控制端. - 結論:
無論是正向 shell還是反彈 shell,都是 A 控制 B,只是請求端不一樣,一個是主動控制,一個被動控制,與正向代理和反向代理一樣,反彈 shell就會更加的穩定,用途更大。
- 正向 shell:攻擊機A,受害者 B
- poc 與 exp 區別:
- POC 是用來證明漏洞存在的,EXP 是用來利用漏洞的,兩者通常不是一類,或者說,POC 通常是無害的,Exp 通常是有害的,有了 POC,才有 EXP。
4、 環境架構
- 開發語言,程序源碼,中間件容器,數據庫類型,服務器操作系統,第三方軟件等
- 開發語言&開發腳本:
- asp,php,asp.jsp,java,python,ruby,go,html,javascript 等
- 程序源碼:根據開發語言分類;應用類型分類;開源 CMS 分類;開發框架分類等
- 中間件容器:IIS,Apache,Nginx,Tomcat,Weblogic,Jboss 等
- 數據庫類型:Access,Mysql,Mssql,Oracle,db2,Redis,MongoDB 等
- 服務器操作系統:Windows 系列,Linux 系列等
- 第三方軟件:phpmyadmin,vs-ftpd,VNC,Openssh 等
5、 web漏洞種類
- SQL 注入,文件安全,RCE 執行,XSS 網站,
- CSRF/SSRF/CRLF,
- 反序列化,邏輯越權,未授權訪問,XXE/XML,弱口令安全等
6、 權限的劃分
- 后臺權限,數據庫權限,部分權限,web 權限,系統權限
- 系統權限:admin, system, users(admin 管理員,users 普通用戶)
- 提權到 system
7、數據包
- 通信過程
- 瀏覽器建立與 web 服務器之間的 connect
- 瀏覽器將請求數據打包(生成請求數據包)并發送到 web 服務器
- web 服務器將處理結果打包(生成響應數據包)并發送給瀏覽器
- web 服務器關閉連接
- 過程:
- 建立連接—> 發送請求數據包—> 返回響應數據包—> 關閉連接
8、請求方式
- GET 方法
- 用于使用指定的 URI 從給定服務器中檢索信息,即從指定資源中請求數據。使用 GET 方法的請求應該只是檢索數據,并且不應對數據產生其他影響。在 GET 請求的 URL 中發送查詢字符串(名稱/值對),需要這樣寫:/test/demo_form.php?name1=value1&name2=value2
- 說明:GET 請求是可以緩存的,我們可以從瀏覽器歷史記錄中查找到 GET 請求,還可以把它收藏到書簽中;且 GET 請求有長度限制,僅用于請求數據
- 注:因 GET 請求的不安全性,在處理敏感數據時,絕不可以使用 GET 請求。
- HEAD 方法
- 與 GET 方法相同,但沒有響應體,僅傳輸狀態行和標題部分。這對于恢復相應頭部編寫的元數據非常有用,而無需傳輸整個內容。
- POST 方法
- 用于將數據發送到服務器以創建或更新資源,它要求服務器確認請求中包含的內容作為由 URI 區分的 web 資源的另一個下屬。POST 請求永遠不會被緩存,且對數據長度沒有限制;我們無法從瀏覽器歷史記錄中查找到 POST 請求。
- PUT 方法
- 用于將數據發送到服務器以創建或更新資源,它可以用上傳的內容替換目標資源中的所有當前內容。它會將包含的元素放在所提供的 URI 下,如果 URI 指示的是當前資源,則會被改變。如果 URI 未指示當前資源,則服務器可以使用該 URI 創建資源
- DELETE 方法
- 用來刪除指定的資源,它會刪除 URI 給出的目標資源的所有當前內容。
- CONNECT 方法
- 用來建立到給定 URI 標識的服務器的隧道;它通過簡單的 TCP/IP 隧道更改請求連接,通常實使用解碼的 HTTP 代理來進行 SSL 編碼的通信(HTTPS)
- OPTIONS 方法
- 用來描述了目標資源的通信選項,會返回服務器支持預定義 URI 的 HTTP 策略。
- TRACE 方法
- 用于沿著目標資源的路徑執行消息環回測試,它回應收到的請求,以便客戶可以看到中間服務器進行了哪些(假設任何)進度或增量。
以上介紹了 HTTP 的 8 種請求方式,其中常用的是 GET 和 POST(GET 是從服務器上獲取數據,POST 是向服務器傳送數據)。
7. 狀態碼
常見狀態碼
- 1**:提示信息 - 表示請求已收到,繼續處理
- 2**:發送成功(200)
- 3**:重定向(302)
- 4**:客戶端錯誤
- 400:發送請求有語法錯誤
- 401:訪問頁面沒有授權
- 403:沒有權限訪問頁面
- 404:沒有該頁面
- 5**:服務端錯誤
- 500:服務器內部異常
- 504:服務器請求超時,沒有返回結果