使用PHP往Windows系統(tǒng)中添加用戶_PHP教程
推薦:利用PHP編程防范XSS跨站腳本攻擊國內(nèi)不少論壇都存在跨站腳本漏洞,國外也很多這樣的例子,甚至Google也出現(xiàn)過,不過在12月初時修正了。(編者注:關(guān)于跨站腳本漏洞攻擊,讀者可參閱《詳解XSS跨站腳本攻擊》)。跨站攻擊很容易就
一、再Web中添加用戶
因為添加用戶,所以你運(yùn)行PHP程序的用戶必須是管理員權(quán)限(Administrator),并且同時需要你的php.ini中的安全模式?jīng)]有打開,并且關(guān)閉函數(shù)中沒有關(guān)閉system()、exec()、passthru()等函數(shù)。
( 以下說明針對Windows2000/Windows XP/Windows 2003 )
1、使用IIS做Web服務(wù)器
如果是使用IIS做服務(wù)器的話,那么運(yùn)行PHP的帳戶就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服務(wù)器的計算機(jī)名),那么你必須把這兩個用戶加到管理員組:Administrators 。當(dāng)然,你這樣做的話,會給服務(wù)器安全帶來威脅。
2、使用Apache作為Web服務(wù)器
據(jù)我了解,Apache安裝成服務(wù)以后,那么就是以system權(quán)限運(yùn)行的,那么就是說PHP運(yùn)行的話,直接就是系統(tǒng)權(quán)限,已經(jīng)超過了管理員權(quán)限,那么執(zhí)行命令更不再話下。如果你修改了Apache的運(yùn)行用戶,那么你必須指定Apache服務(wù)運(yùn)行用戶是管理員以上權(quán)限,比如Administor或者system權(quán)限。
然后你就可以在你的PHP代碼中執(zhí)行添加用戶操作了:
按照樓主的需求,描述如下代碼:
<?php
define("USER_GROUP", "users"); //用戶組,默認(rèn)為users,為了安全,定義還是的用戶組
define("ACTIVE", "YES"); //是否創(chuàng)建后直接激活用戶,YES為激活,NO為不激活
//從數(shù)據(jù)庫提取用戶名和密碼
//假設(shè)表為user_info,并且只有字段id, user, passwod
$sql = "SELECT user,password FROM user_info";
$result = mysql_query($sql) or die("Query database failed");
//循環(huán)插入用戶
while ($array = mysql_fetch_array($result)) {
if (!function_exists("system"))
die('Function system() not exists, add user failed.');
//添加用戶
@system("net user $array[user] $array[passwd] /active:ACTIVE /add");
//添加到指定組
@system("net localgroup users $array[user] /del");
@system("net localgroup USER_GROUP $array[user] /add");
}
?>
以上代碼實(shí)現(xiàn)了把你所有數(shù)據(jù)庫的用戶添加到本地系統(tǒng),如果你想單個的添加,可以考慮更改成用戶注冊成功后就添加用戶,這個可以自己擴(kuò)展。
二、使用php做shell腳本來添加用戶
另外,其實(shí)我還有個思路�?梢栽诜⻊�(wù)器端利用php.exe來執(zhí)行,并且不會有安全問題。我剛做了測試,已經(jīng)通過。
假設(shè)你的php安裝在c:\php\中,那么我們就使用命令提示符的來執(zhí)行php腳本來添加用戶。
PHP代碼:
//c:\test.php
<?php
@system("net user heiyeluren test /add");
?>
保存在c:\test.php文件中
在cmd下執(zhí)行:
c:\php\php.exe c:\test.php
提示:
C:\>c:\php\php.exe c:\test.php
命令成功完成。
那么從這個角度出發(fā),完全可以將上面我寫的那段代碼拿到這里來執(zhí)行,然后php.exe充當(dāng)shell腳本引擎。然后寫成批處理,通過定時任務(wù)來執(zhí)行。當(dāng)然,也可以考慮使用其他語言來實(shí)現(xiàn),比如vb/vc之類的,定期去數(shù)據(jù)庫中檢索是否有新添加的用戶,然后再把用戶添加到系統(tǒng)中。
分享:PHP程序漏洞產(chǎn)生的原因和防范方法濫用include 1.漏洞原因: Include是編寫PHP網(wǎng)站中最常用的函數(shù),并且支持相對路徑。有很多PHP腳本直接把某輸入變量作為Include的參數(shù),造成任意引用腳本、絕對路徑
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-使用PHP往Windows系統(tǒng)中添加用戶
。