国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

php安全代碼審計小結

安全 應用安全
文章僅為一段時間整理的php安全代碼審計筆記總結,一個分析框架,沒有實例化分析。

文章僅為一段時間整理的php安全代碼審計筆記總結,一個分析框架,沒有實例化分析。

一、工具篇

編輯器(notepad++,editplus,UE等等,看個人習慣)

TommSearch(字符串檢索) || grep

HttpProtocolDebugger(http協議調試器)

Fiddler(分析包,改包)

Seay PHP代碼審計工具(php-code-audit分析輔助)

幾個有趣的項目

dvwa(代碼審計測試平臺)

phpmvs

php security audit check

PHP Vulnerability Hunter

#p#

二、函數篇

addslashed()添加反斜杠

stripslashed()去掉反斜杠

get_magic_quotes_gpc() 判斷是否開啟gpc

expode(".",$array)分割成數組

is_numeric()判斷是否為數字

sizeof()判斷長度

trim() 去除字符串開頭和末尾的空格或其他字符

system() 輸出并返回最后一行shell結果。

exec() 不輸出結果,返回最后一行shell結果,所有結果可以保存到一個返回的數組里面。

passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標準輸出設備上。

EscapeShellCmd(),把一個字符串中所有可能瞞過Shell而去執行另外一個命令的字符轉義。這些字符在Shell中是有特殊含義的,象分號(;),重定向(>)和從文件讀入 (<)等。

EscapeShellArg() 。在給定的字符串兩邊加上單引號,并把字符串中的單引號轉義,這樣這個字符串就可以安全地作為命令的參數。

用popen()函數打開進程

上面的方法只能簡單地執行命令,卻不能與命令交互。但有些時候必須向命令輸入一些東西,如在增加Linux的系統用戶時,要調用su來把當前用戶換到root才行,而su命令必須要在命令行上輸入root的密碼。這種情況下,用上面提到的方法顯然是不行的。

popen ()函數打開一個進程管道來執行給定的命令,返回一個文件句柄。既然返回的是一個文件句柄,那么就可以對它讀和寫了。在PHP3中,對這種句柄只能做單一 的操作模式,要么寫,要么讀;從PHP4開始,可以同時讀和寫了。除非這個句柄是以一種模式(讀或寫)打開的,否則必須調用pclose()函數來關閉 它。

例子1:

/* PHP中如何增加一個系統用戶

下面是一段例程,增加一個名字為james的用戶,

root密碼是 verygood。僅供參考

*/

$sucommand = "su --login root --command";

$useradd = "useradd ";

$rootpasswd = "verygood";

$user = "james";

$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user);

$fp = @popen($user_add,"w");

@fputs($fp,$rootpasswd);

@pclose($fp);

require在被包含文件有錯誤代碼時將不再往下執行

include在被包含文件有錯誤代碼時仍然往下執行

htmlspecialchars() 函數把一些預定義的字符轉換為 HTML 實體。

預定義的字符是:

& (和號) 成為 &

" (雙引號) 成為 "

' (單引號) 成為 '

< (小于) 成為 <

> (大于) 成為 >

move_uploaded_file() 函數將上傳的文件移動到新位置。

extract() 函數從數組中把變量導入到當前的符號表中。

對于數組中的每個元素,鍵名用于變量名,鍵值用于變量值。

第二個參數 type 用于指定當某個變量已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的沖突。

本函數返回成功設置的變量數目。

語法

extract(array,extract_rules,prefix)

parse_str() 函數把查詢字符串解析到變量中. (常見于變量覆蓋漏洞)

語法

parse_str(string,array)

參數 描述

string 必需。規定要解析的字符串。

array 可選。規定存儲變量的數組名稱。該參數指示變量存儲到數組中。

針對變量指定攻擊

不使用foreach遍歷$_GET變量,改用$_GET[(index)]

eval() 函數把字符串按照 PHP 代碼來計算。該字符串必須是合法的 PHP 代碼,且必須以分號結尾。

如果沒有在代碼字符串中調用 return 語句,則返回 NULL。如果代碼中存在解析錯誤,則 eval() 函數返回 false。

preg_replace 執行一個正則表達式的搜索和替換

/e參數執行代碼

#p#

三、漏洞篇

-----------------------------------------------

[1].Sql-Injection

留意:cookie及x-forward-for,寬字節,報錯注射等

挖掘漏洞參考

變量

$_GET[""],$_POST[""],$_COOKIE[""], $SERVER[""]

數據庫操作函數

mysql_query()

數字型注入防范:

1.is_numeric() ctype_digit() intval()

2.str_length()確定長度

字符型注入防范:

1.mysql_real_escape_string()

2.數據庫查詢語句前加@防爆錯

3.str_length()確定長度

-----------------------------------------------

[2].Command-Execution

函數:

system(),passthru(),popen(),exec()

數據庫操作函數:

exec,system,popen,passthru,proc_open,shell_exec

執行命令管道符 % | >

測試如0 | dir c:

|| 雙豎線的作用,前面語句執行錯誤則執行后面語句

如xx"+||+whoami+||+echo

-----------------------------------------------

[3].File-Inclusion

函數:

include(),require(),include_once(),require_once()

遠程文件包含漏洞要求

allow_url_fopen() allow_url_include() file_get_contents()

繞過:zlib://和ogg://

5.2.0之后版本

data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8+ //

@eval(file_get_contents('php://input')); //POST phpinfo();

配合%00截斷,新版本自動轉義\0

-----------------------------------------------

[4].CSRF

CSRF防范策略

1>驗證http-referer字段

安全性低,易被偽造

2>在請求地址中添加token并驗證

token可在用戶登錄后存放在session中,每次請求時將token從session中取出,去請求的token對比以防范CSRF

GET方式:http://url/?=token

如果一個網站接受請求地方比較多,則在每次頁面加載時遍歷整個dom樹,在dom中每個a和form標簽后加入token

但在動態頁面加載后產生的html代碼,則需要以硬編碼的形式手工添加

這種方式安全性弱點在于,如在論壇等交互比較頻繁的地方hacker可構造環境盜取token并進而構造csrf攻擊

故手工關閉referer

3>在HTTP頭中自定義屬性并進行驗證。通過XMLHttpRequest類。

通常用于Ajax方法對頁面局部的異步刷新

但適應性一般,對已有的網站架構局限性較大

-----------------------------------------------

[5].XSS(Cross Site Script)

反射型與存儲型

控制$_GET,$_POST,$_COOKIE 各種傳入的變量

使用htmlspecialchars()函數進行基礎過濾

結合CSRF實現自動化利用

-----------------------------------------------

[6].File_Upload

函數:move_uploaded_file()

變量:$_FILES

php文件上傳利用form表單進行文件上傳時必須為post使用multipart/form-data才能完整的傳遞文件數據

php利用$_FILES系統函數的相關參數與函數move_upload_file函數來實例把由$_FILES全局變量生成的臨時文件移動到指定目錄完成文件的上傳

$_FILES['files']['name']客戶端文件的原名稱

$_FILES['files']['type']文件的MIME類型

$_FILES['files']['size']已上傳文件的大小

$_FILES['files']['tmp_name']儲存的臨時文件名,一般為系統默認

$_FILES['files']['error']該文件上傳到相關的錯誤代碼

防范方式:

1>判斷MIME TYPE文件類型如$_FILES['files']['type']=="image/jpeg",判斷文件大小,如$_FILES['files']['size']<10000 && $_FILES['files']['size']>100

2>指定上傳文件名,如依賴時間生成hash(time).jpg等方式

3>根據文件后綴名判斷文件

如file_ext=substr($filename,$strrpos($filename,'.')+1);

注意是否可能有雙擴展名,二次上傳突破等邏輯問題

4>服務器嘗試渲染文件等方式判斷是否為圖片

5>不依賴于客戶端js腳本限制上傳文件類型

6>白名單規則

apache服務器常見上傳安全問題

1>配合.htaccess利用上傳

AllOverride ALL 允許子規則覆蓋父規則

.htaccess添加AddType Application/x-httpd-php .jpg

2>文件名解析漏洞

*.php.123

在.htaccess添加AddHandler php5-script .php,文件名中包含php擴展名可以php腳本執行,如x.php.jpg

.php3 .php4擴展名

#p#

四、配置篇

1>關注漏洞信息,及時更新版本

2>php.ini httpd.conf .htaccess文件配置

1)safe_mode相關配置

2)register_globals關閉

3)open_basedir配置,防范目錄遍歷

4)allow_url_fopen關閉

5)disable_functions配置

6)magic_quotes_gpc打開

7)error_reporting=E_ALL & ~E_NOTICE

8)display_errors=Off避免攻擊者獲取更多信息

9)expose_php=Off隱藏版本信息

3>最小化服務器其他賬戶權限

4>第三方安全加固軟件安裝

5>調用第三方安全防護文件,配置php.ini

include_path=".:/php/includes"

auto_pretend_file="anti-inj.php"

auto_appent_file=

五、思路篇

剛開始練習審計時,拿到一套源碼,馬上做的事情就是,丟到工具里,去掃敏感的函數,然后去一個一個的回溯它,找到入口點。但是,這樣審計很浪費時間,每次都要在回溯過程中,不斷的去尋找源碼中定義的一些通用函數。由于不了解整個源碼的流程,導致在找這些通用函數的過 程中浪費了很多的時間與精力。

所以,我重新調整了我的審計流程。在拿到源碼之后,先從它開始的地方(一般是根目錄下的index文件)按照執行的順序去讀代碼,一直到它的初始化內容, 和基本功能實現完畢為止。這樣,可以明確的了解整套源碼的結構,哪一種函數文件放在哪個文件夾下;知道通用函數放在哪個文件中。這對我們在之后閱讀“疑似”有問題的代碼時,有很好的幫助,例如,在看到一個通用函數時,我們可以快速的切換到通用函數文件,查找這個函數的實現代碼。

注:此處引用修改唐門三少文章《PHP代碼審計學習總結》

六、小結

代碼審計一如逆向工程,均需要耐心與細心。

此外,關注漏洞發布平臺上最新漏洞并跟蹤加以分析也是一個很快提升自己能力的方法。

責任編輯:藍雨淚 來源: bhst.org upker.net
相關推薦

2013-03-25 11:51:42

php漏洞代碼審計php

2015-07-31 09:27:56

安全編碼代碼審計Python

2021-04-27 14:42:46

PHP代碼審計Web安全

2009-02-23 09:11:21

2012-04-25 14:11:00

Hillstone安全審計

2013-01-30 17:19:48

2022-08-02 11:08:55

網絡安全云安全審計

2017-05-12 09:24:21

Python代碼Logger

2009-09-09 20:15:00

2010-05-13 14:14:45

2009-08-10 11:05:05

2009-02-20 11:05:58

PHP優化高效提速

2020-08-19 15:30:04

PHP網絡安全代碼

2020-10-14 11:30:10

PHP網絡安全加密

2011-06-20 10:19:29

2011-03-02 17:09:20

2013-09-12 09:20:45

云安全審計云安全審計

2009-06-26 13:35:50

安全審計信息安全吉大正元

2011-02-28 14:40:40

2022-05-09 09:43:33

物聯網
點贊
收藏

51CTO技術棧公眾號

久久网站最新地址| 精品久久国产| 成人综合婷婷国产精品久久| 国产精品美女主播| 中文字幕资源网在线观看| 久久久久国产免费免费 | 亚洲an天堂an在线观看| 久久婷婷丁香| 成人激情在线观看| 6080亚洲理论片在线观看| 欧美一二三四在线| 黄页网址大全在线观看| 久久久加勒比| 亚洲天天在线日亚洲洲精| wwwav在线| 在线精品视频一区二区三四| 粉嫩一区二区三区国产精品| 色婷婷精品大视频在线蜜桃视频| qvod激情图片| 亚洲一级片在线观看| 久草在线在线视频| 一区二区在线观看免费 | 欧美精品综合| 2022国产精品| 国产精品久久观看| 国产精品丝袜白浆摸在线| 亚洲制服欧美另类| 国产免费一区二区三区香蕉精| 国产精品久久久久久久久久白浆| 国内免费精品永久在线视频| 久久综合另类图片小说| 97超级碰碰碰久久久| 欧美电影免费观看高清| 动漫精品视频| 麻豆精品在线看| 国产欧美高清在线| 椎名由奈av一区二区三区| 青青久在线视频| 日韩一级片在线播放| 亚洲播播91| 国产精品pans私拍| 亚洲福利久久| 日本中文字幕一级片| 国产欧美精品一区| 日本高清视频在线播放| 日韩精品免费在线观看| 亚洲精品tv| 成人网在线免费观看| 国产精品一二三在| 中文字幕av网| 色小说视频一区| 亚洲欧美偷拍自拍| 成人在线视频一区二区三区| 夜夜精品视频一区二区| 久久久久伊人| 国产精品一区而去| 国产日韩欧美一区二区三区乱码| h视频在线播放| 国产激情999| 懂色av一区二区三区蜜臀| 免费在线观看av片| 国产精品视频在线观看| 国产剧情一区二区| 黄色动漫在线观看| 国产精品第一视频| xf在线a精品一区二区视频网站| 九九在线视频| 91在线在线观看| 一区二区三区精品视频| 国产午夜精品一区在线观看| 中国一级黄色录像| 9191久久久久久久久久久| 亚洲国产精品日韩专区av有中文| 欧美日韩一道本| 亚洲成人av片在线观看| 美腿丝袜亚洲一区| 伊人在我在线看导航| 久久精品美女| 欧美一区二区国产| 亚洲精选在线| 欧美jizz18性欧美| 久久精品一区二区三区不卡免费视频| 亚洲h动漫在线| 精品国产一区二区三区香蕉沈先生| 国产免费视频传媒| 久久人人看视频| 亚洲国产毛片aaaaa无费看 | 51一区二区三区| 5月婷婷6月丁香| 欧美激情手机在线视频 | 日本精品网站| 国产淫片av片久久久久久| 自拍偷拍亚洲一区| 国产精品麻豆99久久久久久| 超碰精品在线观看| 亚洲精品666| 国产精品一区二| 亚洲成人黄色网| 成人app下载| 亚洲国产一成人久久精品| free性欧美| 五月婷婷之综合激情| 最近日韩中文字幕| 宅男噜噜噜66一区二区| free欧美| 中文字幕国产在线| 亚洲一卡二卡三卡四卡无卡网站在线看| 尤物九九久久国产精品的特点| 亚洲精品va在线观看| 免费成人av在线| 中文字幕区一区二区三| 无遮挡动作视频在线观看免费入口| 国产高潮呻吟久久久| 国产欧美中文字幕| 国产亚洲精品高潮| 26uuu国产日韩综合| 免费亚洲婷婷| 欧美1区2区3区4区| 9999精品成人免费毛片在线看| 爱爱永久免费视频| 日本免费一级视频| 亚洲一区二区免费视频软件合集| 国产精品白丝jk喷水视频一区| 欧美自拍偷拍一区| 亚洲国产欧美在线| 欧美国产亚洲另类动漫| 免播放器亚洲一区| 天堂电影在线| 3344永久| 国产精品无码一本二本三本色| 亚洲精品成人自拍| 欧美亚洲国产免费| 国产精品9999| 91精品国产免费久久久久久| 亚洲欧美www| 日韩国产高清视频在线| 亚洲国产精品va在看黑人| 欧美v亚洲v综合ⅴ国产v| 色狠狠一区二区| 色综合咪咪久久| 一本色道久久加勒比精品| 亚洲欧美偷拍三级| 亚洲一区二区影院| 中文字幕一区日韩精品欧美| 91麻豆福利精品推荐| 99在线精品一区二区三区| 99视频精品全部免费在线| 久久婷婷成人综合色| 欧美高清在线精品一区| 91麻豆免费看片| 久久免费视频一区| 成人欧美一区二区三区小说| 色悠悠亚洲一区二区| 欧美精品vⅰdeose4hd| 精品久久国产老人久久综合| 亚洲精品久久久久| 欧美精品久久久久久久久久| 国产精品揄拍一区二区| 欧美二区在线| 香港三级日本三级a视频| 日本a√在线观看| 自拍偷拍在线视频| 丝袜美腿av在线| 久久伦理中文字幕| 久久亚洲在线| 国产精品一区在线观看你懂的| 国产欧美1区2区3区| 欧美日本国产视频| 欧美大片免费看| 欧美激情免费观看| 欧美成人激情免费网| 性做久久久久久久免费看| 99精品国产一区二区青青牛奶| 欧美亚洲激情| 一本久久知道综合久久| 成人在线视频首页| 欧美午夜激情在线| 亚洲精品日韩在线| 国产成人在线亚洲欧美| 伊人久久大香线蕉av一区| 亚洲 欧美 日韩系列| 成人在线播放免费观看| 97视频一区| 精品一区二区三区在线观看国产| 国产丝袜美腿一区二区三区| 欧美sm美女调教| 国产精品久久国产精品99gif| 黄色成人在线看| zzzwww在线看片免费| 国内自拍视频一区二区三区 | 久久国产一区| 日韩一级特黄| 激情文学一区| 欧美日韩亚洲成人| 性色av一区二区三区红粉影视| 欧美日韩在线不卡一区| 国产香蕉视频在线看| 欧美va久久久噜噜噜久久| 亚洲自拍偷拍av| 日韩av电影在线免费播放|