app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络

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,你就可以拿到他的用戶權限了。
相關推薦
您想要定制網站嗎?
如果您想要走進互聯網,并且想找一個出色的團隊,那就趕緊聯系我們吧~
主站蜘蛛池模板: 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 致胜管家软件服务【在线免费体验】| 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 建筑工程资质合作-工程资质加盟分公司-建筑资质加盟 | 搜活动房网—活动房_集装箱活动房_集成房屋_活动房屋 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 上海APP开发-APP制作-APP定制开发-上海APP开发制作公司-咏熠科技 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 |