1. php配置防跨站、防跨目錄安全
現在很多網站都是採用php建站,不少都是直接使用現在成熟的cms程序,這些php開發的cms系統本身安全性可能並不高,這時就需要我們在伺服器做一些針對php程序配置防跨站、防跨目錄等一些設置,可以有效的防止伺服器上所有的php網站被惡意篡改。
適用范圍及演示系統
適用范圍:php5.3及以上版本
演示系統:centos
防跨站、防跨目錄安全設置方法
第1步:登錄到linux系統終端。
第2步:找到並打開php配置文件。
第3步:在php.ini最底部添加以下代碼,並保存。大家可就按以下代碼改成自己網站的配置即可。
[HOST=www.45it.com]
open_basedir=/wwwroot/www.45it.com/:/tmp/
[PATH=/wwwroot/www.45it.com]
open_basedir=/wwwroot/www.45it.com/:/tmp/
註:就如上代碼添加完之後就是防跨站防跨目錄的安全配置了,但是有一些缺點,就是比如說我們運行一些php探針等一些程序可能就是無法正常運行了,如果想讓網站正常運行php探針的話需要在/tmp/後加上:/proc/
第4步:添加完代碼並保存php.ini,之後重啟php服務即可生效。
2. 求助php網站被一句話木馬入侵
一句話木馬一般都是插在 留言板之類的常用文本框裡面
3. 求高手回答 PHP網站怎麼侵入怎麼找後台
第一講:判斷有沒注射點
這個很簡單,我們最常用的就是看到頁面的格式為:index.php?id=2這樣的地址,我們知道PHP經常是和MYSQL資料庫一起用的,在MYSQL資料庫中一定存在一個表,比如setting_table,我們提交上面地址的時候,程序一般上這樣處理的:
1、用GET或者POST取我們提交的id=1把這個值傳給一個變數id.
2、查詢:select * from setting_table where id =$id
上面的語句就是查詢的語句,我們代入$id=1就是:
select * from setting_table where id=1
這話是沒什麼問題的,會取出id為1的信息進行顯示給我們,所以我們就能看到正常的頁面。 --------------
看我們是怎麼判斷的:
1、我們提交id=1 and 1=1
看看這個是什麼效果,這里的$id就是1 and 1=1,我們看看是什麼樣子的:
select * from setting_table where id =1 and 1=1
這個語句加了一個and 語句,後面是1=1是肯定成立的,所以就不影響上面語句的成立,它還會取出id=1的信息進行顯示給我們,所以我們看到的還是原來的正常頁面。
2、我們提交 id =1 and 1=2
看看這個是什麼效果,這里的$id就是 1 and 1=2,我們看看在SQL中怎麼執行
select * from setting_table where id =1 and 1=2
分析下這個語句,前面還是一樣的,只是最後加了個and 1=2,這個自然不成立啦!又因為是and連接的,so自然找不到符合條件的啦!只能回顯給我們一個錯誤或者空白的頁面拉~!!
上面就是一般我們採用and 1=1 & and 1=2來判斷的基本原來,但是這里還要注意幾點,如下:
1、程序處理的時候必須是where id =$id 而不是where id=$id,這個單引號是很不一樣的,怎麼不一樣,以後再說。。
2、程序對我們提交的參數沒有處理或者處理的不好,導致我們可以直接提交,如果程序多我們提交的參數進行處理,又會不一樣,也是後話!
第二講:快速判斷MYSQL版本
前提:你得到一個注射點,比如:news.php?id=1
這個點是你找到的,提交and 1=1 和and 1=2返回的是不同的。
我們就可以這樣來猜MYSQL的版本了。。步驟如下:
1、提交/news.php?id=1/*!40000%20s*/如果返回正常就說明MYSQL版本在4000版本以下,你可以依次調節最高位的數字,比如我改為39000提交,如果再正常,就提交38000....直到返回錯誤提示,最後固定的那個就是MYSQL的版本了。。
下面是我提交測試時的過程(只寫MYSQL版本)
40000(+)--39000(+)--38000(+)--370000(-)--37900(+)--37800(+)--37700(-)--結束!!
得到MYSQL版本是37700。
2、一般我們不去猜具體的版本,我們只關系MYSQL是不是在4.0以上,以為只有4.0以上的MYSQL才支持UNION查詢,以下是不支持的,所以我們經常只用/*!40000%20s*/看看是不是4.0以上的版本。
PS:/*!40000%20s*/這里的/*!......*/是mysql里一種特殊的注釋方式,也沒什麼好奇怪的,記得怎麼用就可以了~~
第三講:PHP注射怎樣得到表名。。
正准備寫,看到有人問到了,就總結下,算第三講吧! Quote:
Originally posted by spirit at 2006-5-16 05:57 PM:
看了好多 文章了 ....眼睛都花了
裡面涉及到的東西也比較全面
不過 一直不知道怎麼搞出 表
總不能直接搞 去 欄位吧..??
一個一個來啊
資料庫 表 欄位 值...
這個邏輯我認為是對的 ....
對了這里還是 感 ...
表確實不好搞,不像ASP可能直接暴出來,PHP到現在還是暴不出來的,我們一般有兩個辦法:
1、靠經驗猜:比如大家常用的admin,user,news,vote,wenzhang,guanliyuan等等,沒辦法的事。。
2、暴代碼查看:用Load_file暴出文件代碼,就可以看到數據插值到什麼表,什麼欄位了,這樣就很明白了,但是load_file也很有技巧的。。以後再講。。
--------------------------------------------
具體說一下吧:
1、這個沒什麼好說的,直接猜就可以了,比如你看到一個注射點,類似news.php?id=1這樣的點,你用union查詢得到具體的欄位,比如這樣:news.php?id=1 and 1=2 union select 1,2,3,4 是成立的,
你就可以這樣猜:news.php?id=1 and 1=2 union select 1,2,3,4 from admin/*如果存在admin表,就會返回真,否則就不存在表admin,其他和這個一樣的。
2、這個就有點終極了,比如你得到他的絕對路徑,可以load_file(file path)出文件的代碼,比如你暴得管理員登陸的頁面,就能看到他其中的SQL語句,可以看到他是從哪個表了取的值了,是吧》》
原理就是這樣的,多多思考,有什麼心得,希望能分享。。。。
第四講:有無引號的差別
很多朋友都對那個引號的作用不很了解,認為加引號和不加是一樣的效果..
引號(包括單、雙)對我們的注射是有著很大的影響的,這里主要還是和magic的狀態有關,當這個magic為off的時候倒沒什麼影響,當這個magic為on的時候就大不一樣了。。
小知識:magic為on時,為自動為我們提交的單引號(『),雙引號(「),(\),空格( )等加上轉意 符號\,使得上的都變成(\』),(\」),(\\)等,這就給我們注射太來麻煩,例子如下。
一、第一個例子(沒引號)
如果語句如下:
QUOTE:
select * from news where newsid=$id
1、magic為off時情況
為off時不會處理我們提交的數據信息,假設一個SQL語句是這樣的;
我們在URL中可以提交$id的值,就像我們前面說的給$id為:
$id=1 union select 1,2,3,4 from admin
就基本上可以取得我們想要的數據了。
2、magic為on時情況
這時沒什麼區別,因為我們沒有提交敏感的字元
二、第二個例子看它處理的SQL語句:
QUOTE:
select * from news where newsid=$id
這時要想成功利用$id這個沒過濾的參數,我們可以提交如下:
$id=1』 union select 1,2,3,4 from admin/*
開始要有一個()來閉合前面的,後面再加一個/*注釋掉後面的
1、magic為off時情況
如果magic為off,我們可以直接提交,成功利用
2、magic為on時情況
如果magic為on,那麼我們提交的語句變成:
$id=1\』 union select 1,2,3,4 from admin/*
看,就沒辦法利用了(盡管有漏洞)
4. 如何入侵php網站
很多方法啊,比如:
直接上0day,慢慢滲透,直接去問站長要伺服器鏈接信息~
5. PHP的網站主要攻擊方式有哪些
1、命令注入(Command Injection)
2、eval注入(Eval Injection)
3、客戶端腳本攻擊(Script Insertion)
4、跨網站腳本攻擊(Cross Site Scripting, XSS)
5、SQL注入攻擊(SQL injection)
6、跨網站請求偽造攻擊(Cross Site Request Forgeries, CSRF)
7、Session 會話劫持(Session Hijacking)
8、Session 固定攻擊(Session Fixation)
9、HTTP響應拆分攻擊(HTTP Response Splitting)
10、文件上傳漏洞(File Upload Attack)
11、目錄穿越漏洞(Directory Traversal)
12、遠程文件包含攻擊(Remote Inclusion)
13、動態函數注入攻擊(Dynamic Variable Evaluation)
14、URL攻擊(URL attack)
15、表單提交欺騙攻擊(Spoofed Form Submissions)
16、HTTP請求欺騙攻擊(Spoofed HTTP Requests)