1. 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)
2. php資料庫注入一句話怎麼鏈接
1
mysql.exe -uroot -proot -h127.0.0.1是連接資料庫 -u用戶名 -p密碼 -h資料庫地址
select load_file(『c://1.txt』); select是查詢語句 load_file() 讀取語句
完整的意思就是讀取c盤根目錄下的1.txt文件
3. phpwind9.x和8.7XSS注入以及管理後台腳本注入漏洞
漏洞描述:
phpwind近期公布了2處安全漏洞,分別是富文本編輯器發帖的xss注入(受影響版本8.7、9.X)以及管理後台添加新用戶時的腳本注入(受影響版本8.7)。
影響版本:
phpwind 9.x以及8.7,8.7.1
漏洞等級:
高危
修復建議:
1、安裝官方最新補丁,官方補丁: http://www.phpwind.net/read/3709782
2、添加網站至雲觀測,及時了解網站組件突發/0day漏洞。
4. 伺服器裝什麼軟體 phpcms注入漏洞
本文利用了PHPCMS V9的兩個漏洞,一個是讀取任意文件漏洞,另一個是模版運行php腳本漏洞。使用到的工具:Navicat for Mysql/IE瀏覽器(建議使用代理)/湛藍v9代碼包(包含文中使用到的所有文件、代碼和木馬)
1、放置data.txt以備在目標站點讀取並在目標站點生成PHP木馬腳本使用。
例如將data.txt放置在yun..com/j0192/data.txt
2、通過v9漏洞獲取配置信息(請參閱:phpcms V9最新讀取站點任意文件漏洞http://skyhome.cn/phpcms/176.html)。
/index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=../../phpsso_server/caches/configs/database.php
3、通過v9系統漏洞獲取到的資料庫信息遠程登陸目標站點資料庫,在v9_admin和v9_sso_admin表中添加賬號
username欄位:admn
password欄位:
encrypt 欄位:bGV22e
issuper 欄位: 1
4、通過資料庫添加管理員賬號後使用以下用戶名密碼在後台登陸,然後修改當前用戶密碼。
用戶名:admn
密碼:123456
5、ctrl+a復制write.php全部內容粘貼進v9默認模版下的footer.html保存,然後點擊footer.html的可視化運行該模版中的腳本,到此時就完成在目標站點生成木馬腳本。
6、打開ifeng.com/caches/caches_template/default/wap/data.class.php
用戶名:admin
密碼:admin
7、隱藏新增加的管理員。
通過木馬腳本上傳替換/phpcms/moles/admin/admin_manage.php(默認匹配%admn%),然後登陸目標站點後台查看管理員列表是否還有用戶名為admn的超級管理員,如果沒有則表明我們完成了新加管理員的隱藏。
8、隱藏新增加的關聯鏈接
通過木馬腳本上傳替換/phpcms/moles/admin/keylink.php((默認匹配%skyhome%))
9、將目標網站的漏洞修復,以防其他黑客入侵。
通過木馬腳本上傳替換/phpcms/moles/search/index.php
防黑參考:
1、關閉資料庫遠程訪問。
2、靜態文件及附件等文件目錄禁止執行許可權。
3、腳本文件目錄禁止寫許可權。
4、系統後台等重要目錄限制IP訪問。
5、及時關注開源系統官方補丁升級和烏雲、sebug等漏洞發布平台,修復系統漏洞。
5. php防止sql注入以及xss跨站腳本攻擊
1.post數據
封裝轉義函數 防sql注入 eag:addslashes($username);addslashes($password);
eag:防止sql注入函數封裝
function deepslashes($data){
#判斷$data的表現形式 並且需要處理空的情況
if(empty($data)){
return($data);
}
#高級簡寫 return is_array($data) ? array_map('deepslashes',$data) : addslashes($data);
#初級寫法
if(is_array($data)){
#遞歸循環遍歷處理多維數組
foreach ($data as $v) {
return deepslashes($v);
}
}else{
#單一變數
return addslashes($data);
}
#初級寫法
}
2.get數據
指url 傳參數導致sql發生改變
解決方案
①強制轉換,使用函數intval 或者 數據類型 的關鍵字int
②隱式轉換,通過運算,只需要+0即可
3.xss跨站腳本攻擊
指惡意攻擊向web頁面插入html、js標簽導致頁面出現錯誤
解決方案
轉義標簽'<' '>'即可,有以下php函數可解決
htmlspecialchars 函數 和 htmlentites函數
eag:
function deepslashes($data){
#判斷$data的表現形式 並且需要處理空的情況
if(empty($data)){
return($data);
}
return is_array($data) ? array_map('deepslashes',$data) : htmlspecialchars ($data);
}
6. thinkphp怎麼做才是安全的sql防注入
注入的產生一般都是對用戶輸入的參數未做任何處理直接對條件和語句進行拼裝.
代碼舉例:
//不安全的寫法舉例1
$_GET['id']=8;//希望得到的是正整數
$data=M('Member')->where('id='.$_GET['id'])->find();
$_GET['id']='8 or status=1';//隱患:構造畸形查詢條件進行注入;
//安全的替換寫法
$data=M('Member')->where(array('id'=>$_GET['id']))->find();//使用數組方式將自動使用框架自帶的欄位類型檢測防止注入
$data=M('Member')->where(array('id'=>(int)$_GET['id']))->find();//類型約束
$data=M('Member')->where('id='.intval($_GET['id']))->find();//類型轉換
$data=M('Member')->where(array('id'=>I('get.id','','intval')))->find();//本人習慣寫法
$data=M('Member')->where(array('id'=>':id'))->bind(':id',I('get.id'))->select();//PDO驅動可以使用參數綁定
$data=M('Member')->where("id=%d",array($_GET['id']))->find();//預處理機制
//不安全的寫法舉例2
$_GET['id']=8;//希望得到的是正整數
$data=M()->query('SELECT * FROM `member` WHERE id='.$_GET['id']);//執行的SQL語句
$_GET['id']='8 UNION SELECT * FROM `member`';;//隱患:構造畸形語句進行注入;
2.防止注入的總的原則是<<根據具體業務邏輯,對來源於用戶的值的范圍,類型和正負等進行限制和判斷>>,同時<<盡量使用THINKPHP自帶的SQL函數和寫法>>.
3.在THINKPHP3.2版本中的操作步驟是:
一:在項目配置文件中添加配置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默認過濾函數
二: 使用框架帶的I方法獲取來自用戶提交的數據;
例子:M('Member')->save(array('content'=>I('post.content')));這樣添加的content內容是經過htmlspecialchars處理過的.
4.為COOKIE添加httponly配置
5.最新版本的thinkphp已經支持此參數。
9.富文本過濾
富文本過濾是,XSS攻擊最令人頭疼的話題,不僅是小網站,就連BAT這樣的巨頭也是三天兩頭的被其困擾.
7. PHP防SQL注入問題
你說的只是php代碼中可能會允許你使用注入語句,但是一般來說,網站防注入都是在鏈接資料庫的類中加入了轉換,也就是說把注入語句的關鍵字都加上了轉義字元。比如你遇到的這種情況,就是被防注入了。
關於你這個問題:
問:輸入框中的SQL語句應該如何寫?
條件:資料庫表、欄位全已知,輸入框長度不限。
我只能跟你說,你可以在輸入框中加入;,/這種符號,讓語句解析的時候出現問題,讓php把sql語句拼合成兩個或兩個以上。這樣你就可以在第二條語句之後加入你想要執行的命令了。
如果這種方法沒有效果,你只能使用溢出的方式來注入!
如果幫助到您,請記得採納為滿意答案哈,謝謝!祝您生活愉快! vae.la
8. PHP要怎麼防止SQL注入
防止注入最簡單的辦法就是本地生成html文件,然後上傳到網站空間內,全站的html是無法被注入攻擊的,除非伺服器被幹掉。如果一定要將php代碼放到網站上,那麼需要防止的內容就要做的很多了,其中最重要的一條就是書寫代碼的規范程度,以及對用戶提交的驗證規范。如果用到專門的cms去做網站的話,一定要定時下載升級,並到相關的官方論壇及一些白客站點查看最新漏洞源碼信息,加以改正,可以有效的防止注入攻擊。
在注冊時防止注入,其實最主要的一條就是在寫入、查詢資料庫之前完成對用戶錄入數據的驗證。具體如何驗證可以網路搜索一下
9. php防注入的方法給幾個
方法只有一個,把內容轉義(或者說編碼)一下
比如sql中的『變成\'
html 中的 < 編碼成 <
10. php如何防止sql注入
PHP防止sql注入是一個比較低級的問題了,這個問題其實在我大一上學期做第一個個人博客的時候就已經關注過了,不過簡單的說一下關於PHP防注入的方式吧。
對於現在的防注入技術其實已經成熟了,對於一個站點該關心的不是防注入了,而是大規模高並發如何處理的問題,或者關於各種其他漏洞,比如現在世界上仍然有百分之80使用redis的站點存在redis漏洞,通過redis漏洞可以直接拿到機器的訪問許可權,一般來說都是直接給你種一個挖礦機器人來。