国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php.ini中magic_quote_gpc功能on理解

2024-05-04 21:58:49
字體:
供稿:網(wǎng)友

開啟magic_quote_gpc=on之后,能實(shí)現(xiàn)addslshes()和stripslashes()這兩個(gè)函數(shù)的功能。在PHP4.0及以上的版本中,該選項(xiàng)默認(rèn)情況下是開啟的,所以在PHP4.0及以上的版本中,就算PHP程序中的參數(shù)沒有進(jìn)行過濾,PHP系統(tǒng)也會(huì)對(duì)每一個(gè)通過GET、POST、COOKIE方式傳遞的變量自動(dòng)轉(zhuǎn)換,換句話說,輸入的注入攻擊代碼將會(huì)全部被轉(zhuǎn)換,將給攻擊者帶來非常大的困難。

雖然如此,攻擊者仍然有機(jī)會(huì)進(jìn)行SQL注入攻擊,前提是,當(dāng)參數(shù)為數(shù)字型的時(shí)候,且未經(jīng)過Intval()函數(shù)的處理,因?yàn)榻?jīng)過intval()的處理之后,所有的數(shù)據(jù)就都會(huì)強(qiáng)制轉(zhuǎn)換成數(shù)字。

前面已經(jīng)提到過,開啟magic_quote_gpc=on之后,相當(dāng)于使用addslshes()這個(gè)函數(shù),但是數(shù)字型沒有用到單引號(hào),所以理所當(dāng)然的繞過了addslshes()函數(shù)的轉(zhuǎn)換了,而使用MySQL自帶的char()函數(shù)或者HEX(),char()可以將參數(shù)解釋為整數(shù)并且返回這些整數(shù)的ASCII碼字符組成的字符串,使用十六進(jìn)制表示必須在數(shù)字前加上0x。

實(shí)例演示:假設(shè)我們知道管理員的用戶名為admin,密碼不知道。并且已經(jīng)將magic_quote_gpc啟用。

SQL語句如下:

$sql="select * from users where username=$name and password='$pwd'"; 

注意:變量$name沒加引號(hào),此時(shí),在地址欄中輸入username=admin%23,則合成后的sql語句為如下:

select * from users where username='admin' #' and password=''; 

這時(shí)候通過url地址欄輸入的單引號(hào)(’)將被加上反斜線,該sql語句將失效,admin轉(zhuǎn)換成ASCII后是char(97,100,109,105,110),此時(shí)在地址欄中輸入如下代碼:

username=char(97,100,109,105,110)%23 

SQL語句就變成了如下代碼:

select * from users where username=char(97,100,109,105,110)#' and password=''; 

執(zhí)行結(jié)果為真,就可以順利進(jìn)入后臺(tái),對(duì)于數(shù)字型注入攻擊,必須在任何的數(shù)字型參數(shù)放入數(shù)據(jù)庫之前使用intval()對(duì)參數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)換成數(shù)字,從而可以斷絕數(shù)字型注入漏洞的產(chǎn)生,比如如下代碼:

$id=intval($_GET[‘id’]);select * from articles where id=’$id’;

地址欄中輸入如下代碼:

id=5’ or 1=1%23 

SQL語句將變成如下:select * from articles where id=’5’;而不是select * from articles where id=’5’ or 1=1#;

總結(jié):對(duì)于每一個(gè)變量都記得加上單引號(hào),比如where username=’$name’,開啟magic_quote_gpc并不是絕對(duì)安全的,對(duì)于數(shù)字型注入攻擊,僅僅使用addslashes()函數(shù)進(jìn)行轉(zhuǎn)換是不夠的,還需使用intval()強(qiáng)制將參數(shù)轉(zhuǎn)換成數(shù)字.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 叶城县| 平阴县| 张家界市| 丹寨县| 华亭县| 井研县| 武义县| 乐昌市| 永州市| 盐亭县| 江永县| 陵水| 墨玉县| 大兴区| 洛南县| 包头市| 天津市| 灵丘县| 曲松县| 壤塘县| 阿拉善右旗| 石首市| 乌鲁木齐县| 股票| 蓝山县| 丹江口市| 襄垣县| 密云县| 正定县| 宜兰市| SHOW| 炉霍县| 尚志市| 宣化县| 伊宁县| 晋宁县| 五大连池市| 田阳县| 陕西省| 日土县| 方城县|