<table id="gkssy"><source id="gkssy"></source></table>
  • <button id="gkssy"></button>
    <kbd id="gkssy"><object id="gkssy"></object></kbd>
    <abbr id="gkssy"><object id="gkssy"></object></abbr>
  • <abbr id="gkssy"></abbr>
  • Web 安全 PHP 代碼審查之常規漏洞
    qcw100
    2018-08-20 16:48:51
    26

     前言

     
    工欲善其事,必先利其器。我們做代碼審計之前選好工具也是十分必要的。下面我給大家介紹兩款代碼審計中比較好用的工具。
     
    一、審計工具介紹
     
    PHP 代碼審計系統— RIPS
     
    功能介紹
     
    RIPS 是一款基于 PHP 開發的針對 PHP 代碼安全審計的軟件。
     
    另外,它也是一款開源軟件,由國外安全研究員 Johannes Dahse 開發,程序只有 450KB,目前能下載到的最新版是0.55。
     
    在寫這段文字之前筆者特意讀過它的源碼,它最大的亮點在于調用了 PHP 內置解析器接口token_get_all,
     
    并且使用Parser做了語法分析,實現了跨文件的變量及函數追蹤,掃描結果中非常直觀地展示了漏洞形成及變量傳遞過程,誤報率非常低。
     
    RIPS 能夠發現 SQL 注入、XSS 跨站、文件包含、代碼執行、文件讀取等多種漏洞,支持多種樣式的代碼高亮。比較有意思的是,它還支持自動生成漏洞利用。
     
    二、代碼審計實戰
     
    通過剛才安裝的兩個審計工具運行后我們可以發現,會分析出很多隱藏的漏洞,那下面我們看看其中的SQL注入、XSS、CSRF產生的原因,通過原因來分析如何去審計代碼。
     
    SQL注入
     
    SQL注入漏洞一直是web系統漏洞中占比非常大的一種漏洞,下面我們來看看SQL注入的幾種方式。
     
    SQL 注入漏洞分類
     
    從利用方式角度可以分為兩種類型:常規注入、寬字節注入。常規注入方式,通常沒有任何過濾,直接把參數存放到了SQL語句當中
     
    開發者一般都會做一些過濾,比如使用addslashes(),但是過濾有時候也不一定好使。
     
    編碼注入方式
     
    寬字節注入,這個是怎么回事呢?
     
    在實際環境中程序員一般不會寫上面類似的代碼,一般都會用addslashes()等過濾函數對從web傳遞過來的參
     
    數進行過濾。不過有句話叫做,道高一尺魔高一丈,我們看看白帽子是怎么突破的。用PHP連接MySQL的時候
     
    ,當設置 character_set_client=gbk時候會導致一個編碼漏洞。我們知道addslashes() 會把參數 1’ 轉換成 1\’,
     
    而我們提交參數 1%df’ 時候會轉成 1縗’,那我們輸入 1%df’ or 1=1%23時候,會被轉換成 1縗’ or 1=1#’。
     
    簡單來說%df’會被過濾函數轉義為%df\’ ,%df\’ = %df%5c%27  在使用gbk編碼的時候會認為%df%5c是一個寬字節%df%5c%27=縗’,這樣就會產生注入。
     
    那如何防御這個寬字節呢?我希望大家開發網站盡量使用UTF8編碼格式,如果轉換麻煩,最安全的方法就是
     
    使用PDO預處理。挖掘這種漏洞主要是檢查是否使用了gbk,搜索guanjianc character_set_client=gbk 和
     
    mysql_set_chatset('gbk') 。
     
    二次urldecode注入,這中方式也是因為使用了urldecode不當所引起的漏洞。
     
    我們剛才知道了 addslashes()函數可以防止注入,他會在(‘)、(“)、()前面加上反斜杠來轉義。
     
    那我們假設我們開啟了GPC,我們提交了一個參數,/test.php?uid=1%2527,因為參數中沒有單引號,所以第一次解碼會變成uid=1%27,%25解碼出來就是%,
     
    這時候程序里如果再去使用urldecode來解碼,就會把%27解碼成單引號(‘),最終的結果就是uid=1’.
     
    我們現在知道了原有是因為urldecode引起的,我們可以通過編輯器的搜索urldecode和rawurldecode找到二次url漏洞。
     
    從漏洞類型區分可以分為三種類型:
     
    可顯
     
    攻擊者可以直接在當前界面內容中獲取想要獲得的內容。
     
    報錯
     
    數據庫查詢返回結果并沒有在頁面中顯示,但是應用程序將數據庫報錯信息打印到了頁面中。
     
    所以攻擊者可以構造數據庫報錯語句,從報錯信息中獲取想要獲得的內容,所以我建議在數據庫類中設置不拋出錯誤信息。
     
    盲注
     
    數據庫查詢結果無法從直觀頁面中獲取攻擊者通過使用數據庫邏輯或使數據庫庫執行延時等方法獲取想要獲得的內容。
     
    SQL 注入漏洞挖掘方法
     
    針對上面提到的利用漏洞方法,總結了以下的挖掘方法:
     
    參數接收位置,檢查是否有沒過濾直接使用  _POST、$_COOKIE 參數的。
     
    SQL語句檢查,搜索關鍵詞 select update insert 等SQL語句關鍵處,檢查SQL語句的參數是否可以被控制。
     
    寬字節注入,如果網站使用的 GBK 編碼情況下,搜索guanjianc character_set_client=gbk 和mysql_set_chatset('gbk') 就行。
     
    二次 urldecode 注入,少部分情況,gpc 可以通過編輯器的搜索 urldecode 和 rawurldecode 找到二次url漏洞。
     
    SQL 注入漏洞防范方法
     
    雖然SQL注入漏洞非常多,但是防范起來卻挺簡單的,下面介紹幾個過濾函數和類:
     
    XSS 又叫 CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往 Web 頁面里插入惡意 html 
     
    代碼,當用戶瀏覽該頁之時,嵌入其中 Web 里面的 html 代碼會被執行,從而達到惡意的特殊目的。
     
    XSS 屬于被動式的攻擊,因為其被動且不好利用,所以許多人常呼略其危害性。在 WEB2.0 時代,強調的是
     
    互動,使得用戶輸入信息的機會大增,在這個情況下,我們作為開發者,在開發的時候,要提高警惕。
     
    xss 漏洞分類
     
    反射型,危害小,一般
     
    反射型XSS原理:就是通過給別人發送帶有惡意腳本代碼參數的URL,當URL地址被打開時,特定的代碼參數會
     
    被HTML解析,執行,如此就可以獲取用戶的COOIKE,進而盜號登陸。比如hack甲構造好修改密碼的URL并把密
     
    碼修改成123,但是修改密碼只有在登陸方乙才能修改,乙在登陸的情況下點擊甲構造好的URL將直接在不知情的情況下修改密碼。
     
    特點是:非持久化,必須用戶點擊帶有特定參數的鏈接才能引起。
     
    存儲型,危害大,影響時間長
     
    存儲型XSS原理,假設你打開了一篇正常的文章頁面,下面有評論功能。這個時候你去評論了一下,在文本框
     
    中輸入了一些JavaScript代碼,提交之后,你刷新這個頁面后發現剛剛提交的代碼又被原封不動的返回來并且執行了。
     
    這個時候你會想,我要寫一段 JavaScript 代碼獲取 cookie 信息,然后通過ajax發送到自己的服務器去。構
     
    造好代碼后你把鏈接發給其他的朋友,或者網站的管理員,他們打開 JavaScript 代碼就執行了,你服務器
     
    就接收到了sessionid,你就可以拿到他的用戶權限了。
    相關推薦
    您想要定制網站嗎?
    如果您想要走進互聯網,并且想找一個出色的團隊,那就趕緊聯系我們吧~
    主站蜘蛛池模板: 又大又硬又黄的免费视频| 好看的中文字幕在线| 国产又黄又爽胸又大免费视频| 亚洲av午夜精品无码专区| 91久久精品国产免费一区| 欧美色成人tv在线播放| 国语高清精品一区二区三区| 亚洲综合五月天欧美| 97热久久免费频精品99| 欧美激情视频二区| 国产精品国产色综合色| 亚洲午夜久久久久久尤物| 五月丁六月停停| 日韩中文字幕视频| 国产主播精品福利19禁vip| 中文字幕天天躁日日躁狠狠躁免费 | 欧美人与动人物xxxx| 国产粉嫩白浆在线观看 | 一二三四在线观看高清| 看**视频a级毛片| 夜夜高潮夜夜爽夜夜爱爱| 亚洲第一网站男人都懂| 6080yy成人午夜电影| 欧美bbbbb| 国产伦精品一区二区三区视频金莲 | 国产成人精品999在线观看| 九九热精品国产| 足本玉蒲团在线观看| 成年女人免费播放影院| 午夜免费1000部| av天堂午夜精品一区| 欧美日韩亚洲二区在线| 国产日韩欧美高清| 久久中文字幕2021精品| 精品少妇ay一区二区三区| 天堂影院www陈冠希张柏芝| 亚洲欧洲精品成人久久曰影片| 天天成人综合网| 无翼乌全彩无遮挡动漫视频| 免费黄色在线网站| 97久久免费视频|