Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
.本文為公測(cè)版,一旦發(fā)現(xiàn)有任何錯(cuò)誤內(nèi)容,會(huì)立即進(jìn)行修復(fù),請(qǐng)持續(xù)關(guān)注本站。
2.本文在正式版之前會(huì)不斷的邀請(qǐng)各路黑客大手進(jìn)行評(píng)價(jià)測(cè)試,歡迎提出異議。
本文僅針對(duì)網(wǎng)站部分,本文會(huì)對(duì)typecho,wordpress進(jìn)行測(cè)試
如果你root端口為22,并且密碼是123456,就沒必要往下看了。
網(wǎng)站環(huán)境為linux tengine/nginx mariaDB,同理,apache也有相關(guān)設(shè)置,百度實(shí)驗(yàn)下即可。
**本文會(huì)闡述以下部分
1.基礎(chǔ)權(quán)限控制
2.執(zhí)行目錄限制
3.PHP的限制
4.webshell寫入與執(zhí)行
5.權(quán)限細(xì)分,必須寫入的目錄**
1.基礎(chǔ)權(quán)限控制
什么叫基礎(chǔ)權(quán)限?在LNMP架構(gòu)下,nginx+php-fpm架構(gòu)需要什么權(quán)限?
這里我們先來看一下默認(rèn)權(quán)限
默認(rèn)我們的nginx運(yùn)行用戶是nginx,而php-fpm的默認(rèn)用戶是apache,默認(rèn)用戶安全嗎?
看一下webshell
uid=48(apache) gid=48(apache) groups=48(apache)
很明顯,我們的默認(rèn)用戶是apache
我們使用shell新建一個(gè)目錄,很明顯,我們是無法建立文件夾的
mkdir: cannot create directory `1': Permission denied
在網(wǎng)上很多教程會(huì)告訴我們,吧nginx和phpfpm改成同樣的用戶,我們看看會(huì)發(fā)生什么。
[root@gov 1]# sudo -u nginx mkdir 1
[root@gov 1]# ll
total 4
drwxr-xr-x 2 nginx nginx 4096 Aug 19 18:08 1
沒錯(cuò),這是一項(xiàng)愚蠢的決定!
所以默認(rèn)權(quán)限是安全的嗎?并不是,你忘了上傳目錄,我們看下上傳目錄的權(quán)限
drwxrwx--- 3 nginx apache 4096 Aug 14 17:09 uploads
沒錯(cuò),上傳目錄的存在就是放大權(quán)限,如果php沒有寫入權(quán)限,那么他就無法上傳圖片。
假設(shè),我們手里有一個(gè)0day,現(xiàn)在我要用它來getshell
我會(huì)選擇uploads目錄
-rw-r--r-- 1 apache apache 0 Aug 19 18:11 1.php
完美寫入,接著你的站就會(huì)被玩壞了,寫入shell后我們可以插件數(shù)據(jù)庫鏈接密碼,進(jìn)網(wǎng)站后臺(tái),脫褲,掛黑鏈等等等等
網(wǎng)站里有幾個(gè)目錄是默認(rèn)可以寫入的?在你的網(wǎng)站目錄下執(zhí)行l(wèi)s -l
通常plugins themes uploads
這三個(gè)目錄都是可以寫入的。
你還有其他目錄可以寫入?趕緊修改權(quán)限吧!
加入我們的網(wǎng)站在/var/www/html/root
那么下面的命令是極好的,對(duì)于必須要有上傳權(quán)限的uploads目錄,我們下面再說
chown -R nginx.apache html
find /var/www/html/root -type d -exec chmod 750 {} \;
find /var/www/html/root -not -type d -exec chmod 640 {} \;
chmod 770 /var/www/html/root/uploads -R
如果你有某些插件也需要寫入權(quán)限,給他權(quán)限,并認(rèn)真看下面的內(nèi)容。
2.執(zhí)行目錄限制
我們的apache權(quán)限有多大呢?相同的網(wǎng)站擁有相同的權(quán)限。
默認(rèn)情況下,我們的apache權(quán)限能瀏覽大部分目錄。最要命的問題在于,他可以跨站執(zhí)行,從你的網(wǎng)站一直接執(zhí)行到網(wǎng)站二。
我們需要給他一個(gè)限制,每個(gè)虛擬主機(jī)一個(gè)單獨(dú)的限制,沒錯(cuò)就是open_basedir。
這里我們需要特別的技巧,每個(gè)虛擬機(jī)都要限制
這樣虛擬主機(jī)將只允許在網(wǎng)站目錄和tmp目錄執(zhí)行,而不能穿越到其他目錄
在烏云有一篇討論繞過open_basedir
的文章,所以open_basedir
只能讓你更安全而不是徹底安全,所以你還需要往下看。
server {
location ~ .*\.php(\/.*)*$ {
#include pathinfo.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/";
3.PHP的限制
我們想一個(gè)另類解決辦法,如何限制webshell的執(zhí)行?
在php.ini里,我們可以選擇關(guān)閉某些不安全的函數(shù)
但是由于php這玩意分之多又復(fù)雜,這里只能整理出一部分不安全的函數(shù)。
直接添加到php.ini最后面即可
disable_functions=exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_server,disk_total_space,disk_free_space,diskfreespace,getrusage,get_current_user,getmyuid,getmypid,dl,leak,listen,chgrp,link,symlink,dlopen,proc_nice,proc_get_stats,proc_terminate,shell_exec,sh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,mkfifo,dbmopen,dbase_open,filepro,filepro_rowcount,posix_mkfifo,putenv,sleep,chmod,chown,chroot,ini_set,phpinfo,proc_get_status,error_log,syslog,readlink,putenv
在看webshell,我們會(huì)發(fā)現(xiàn)里面空空如也了,并不能執(zhí)行命令了。
4.webshell寫入與執(zhí)行
現(xiàn)在我們的網(wǎng)站已經(jīng)很安全了,他能否更加安全?
現(xiàn)在,我們就要說說我們必須要有執(zhí)行權(quán)限的upload目錄了,nginx同樣提供了解決方案
location ~ /(usr/uploads)/.*\.(php|php5)?$
{
deny all;
}
這個(gè)時(shí)候我們打開uploads中的php文件會(huì)提示403
403 Forbidden
You don't have permission to access the URL on this server. Sorry for the inconvenience.
我們的效果得到驗(yàn)證,即使寫入也不能執(zhí)行。
5.必須要寫入權(quán)限但是又包含php文件的目錄。
例如我的用的郵件通知插件目錄內(nèi)有cache和和log目錄,是必須有寫入權(quán)限的
這里千萬不要犯懶,直接給CommentToMail
寫入
location ~ /(usr/uploads|usr/plugins/CommentToMail/cache|usr/plugins/CommentToMail/log)/.*\.(php|php5)?$
{
deny all;
}
既可以實(shí)現(xiàn)寫入文件,又可以讓php無法執(zhí)行。
總結(jié),上面的所有配置:
用戶與PHP運(yùn)行權(quán)限分離
nginx:apache
執(zhí)行目錄限制
open_basedir
PHP函數(shù)限制
php.ini
特殊目錄關(guān)閉PHP解析
deny all
權(quán)限細(xì)分
xx|xx|xx
歡迎拍磚,同時(shí) 起司靶場v2 上線,完全脫離安全鎖之類的軟件,歡迎測(cè)試。
起司靶場v2
用 Access 可以很好地管理各種數(shù)據(jù), 但是在實(shí)際應(yīng)用中, 許多數(shù)據(jù)并不是使用 Access 來收集的, 此時(shí), 為了使用 Access 管理其他軟件或程序收集到的數(shù)據(jù), 可以將收集到的數(shù)據(jù)導(dǎo)入 Access 中。
在 Access 數(shù)據(jù)庫中, 可以將其他的 Access 數(shù)據(jù)庫、 ODBC 數(shù)據(jù)庫、 Excel 表格、 HTML 文檔和文本文件等外部數(shù)據(jù)導(dǎo)入當(dāng)前數(shù)據(jù)庫中, 下面將分別介紹。
如果要將其他 Access 數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)庫對(duì)象, 既可以使用復(fù)制和粘貼的方法, 也可以使用【導(dǎo)入向?qū)А縼硗瓿伞?使用【導(dǎo)入向?qū)А?可以在不打開 Access 的情況下完成, 其具體操作步驟如下。
Step 01 打開"銷售管理數(shù)據(jù) .accdb",單擊【外部數(shù)據(jù)】 選項(xiàng)卡【導(dǎo)入并鏈接】 組中的【新數(shù)據(jù)源】 下拉按鈕,在彈出的下拉菜單中選擇【從數(shù)據(jù)庫】選項(xiàng),在彈出的級(jí)聯(lián)菜單中選擇【Access】 選項(xiàng), 如圖所示。
Step 02 打開【獲取外部數(shù)據(jù) -Access數(shù)據(jù)庫】 對(duì)話框, 單擊【文件名】文本框右側(cè)的【瀏覽】 按鈕, 如圖所示。
Step 03 打開【打開】 對(duì)話框,選擇要導(dǎo)入的數(shù)據(jù)庫,單擊【打開】按鈕,如圖所示。
Step 04 返回【獲取外部數(shù)據(jù) -Access數(shù)據(jù)庫】 對(duì)話框,選中【將表、 查詢、 窗體、 報(bào)表、 宏和模塊導(dǎo)入當(dāng)前數(shù)據(jù)庫】單選按鈕,單擊【確定】按鈕, 如圖所示。
技術(shù)看板
選中【將表、 查詢、 窗體、 報(bào)表、宏和模塊導(dǎo)入當(dāng)前數(shù)據(jù)庫】單選按鈕,表示導(dǎo)入后的對(duì)象與源對(duì)象是獨(dú)立的,沒有任何關(guān)系。 如果選中【通過創(chuàng)建鏈接表來鏈接到數(shù)據(jù)源】 單選按鈕,會(huì)在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個(gè)鏈接表,鏈接到源數(shù)據(jù)庫對(duì)象上, 此鏈接表的改動(dòng)是雙向的, 無論修改源對(duì)象還是當(dāng)前數(shù)據(jù)庫對(duì)象, 都會(huì)同步反映給雙方。 在 Access 中, 利用該鏈接功能,可以實(shí)現(xiàn)文件的共享。
Step 05 打開【導(dǎo)入對(duì)象】 對(duì)話框, 在6 個(gè)選項(xiàng)卡中分別顯示了源數(shù)據(jù)庫中的各個(gè)對(duì)象, 選擇【表】 選項(xiàng)卡中的【年度銷售記錄】 選項(xiàng),單擊【確定】 按鈕如圖所示。
Step 06 返回【獲取外部數(shù)據(jù) -Access數(shù)據(jù)庫】 對(duì)話框,選中【保存導(dǎo)入步驟】 復(fù)選框; 在【另存為】文本框中輸入名稱,單擊【保存導(dǎo)入】 按鈕, 如圖所示。
Step 07 操作完成后, 即可導(dǎo)入選擇的數(shù)據(jù)庫, 如圖所示。
對(duì)于一般用戶而言, 對(duì) Excel 的熟悉程序遠(yuǎn)遠(yuǎn)高于 Access, 尤其是在操作表格數(shù)據(jù)時(shí), Excel 的界面更加直觀, 操作也更為簡潔。 所以, 用戶可以先在 Excel 中編輯好數(shù)據(jù), 然后將其導(dǎo)入 Access 中, 從而方便快捷地制作表對(duì)象, 具體操作步驟如下。
Step 01 打開"銷售管理數(shù)據(jù) .accdb",單擊【外部數(shù)據(jù)】 選項(xiàng)卡【導(dǎo)入并鏈接】 組中的【新數(shù)據(jù)源】下拉按鈕,在彈出的下拉菜單中選擇【從文件】選項(xiàng),在彈出的級(jí)聯(lián)菜單中選擇【Excel】 選項(xiàng), 如圖所示。
Step 02 打開【獲取外部數(shù)據(jù) -Excel 電子表格】 對(duì)話框, 單擊【文件名】文本框右側(cè)的【瀏覽】 按鈕, 如圖所示。
Step 03 打開【打開】 對(duì)話框,選擇要導(dǎo)入的 Excel電子表格,單擊【打開】 按鈕, 如圖所示。
Step 04 返回【獲取外部數(shù)據(jù) -Excel 電子表格】 對(duì)話框,選中【將源數(shù)據(jù)導(dǎo)入當(dāng)前數(shù)據(jù)庫的新表中】 單選按鈕,單擊【確定】按鈕,如圖所示。
Step 05 打開【導(dǎo)入數(shù)據(jù)表向?qū)А繉?duì)話框,選中【顯示工作表】 單選按鈕,單擊【下一步】 按鈕,如圖所示。
Step 06 在【導(dǎo)入數(shù)據(jù)表向?qū)А?對(duì)話框中,選中【第一行包含列標(biāo)題】復(fù)選框,單擊【下一步】 按鈕,如圖所示。
Step 07 在【導(dǎo)入數(shù)據(jù)表向?qū)А?對(duì)話框中的【字段選項(xiàng)】 欄分別指定每個(gè)字段的名稱、 數(shù)據(jù)類型、 索引等信息, 如指定【銷售編號(hào)】字段的【索引】為【有(無重復(fù))】,單擊【下一步】 按鈕,如圖所示。
Step 08 在【導(dǎo)入數(shù)據(jù)表向?qū)А?對(duì)話框中,選中【我自己選擇主鍵】 單選按鈕,在右側(cè)的下拉列表框中選擇【銷售編號(hào)】 選項(xiàng),單擊【下一步】 按鈕, 如圖所示。
Step 09 在【導(dǎo)入數(shù)據(jù)表向?qū)А?對(duì)話框中, 在【導(dǎo)入到表】 文本框中指定表名稱, 如保持默認(rèn)名稱, 單擊【完成】 按鈕, 如圖所示。
Step 10 返回【獲取外部數(shù)據(jù) -Excel 電子表格】 對(duì)話框,選中【保存導(dǎo)入步驟】 復(fù)選框,在【另存為】文本框中輸入名稱,單擊【保存導(dǎo)入】 按鈕, 如圖所示。
Step 11 操作完成后, 即可導(dǎo)入選擇的Excel 電子表格, 并在數(shù)據(jù)庫中創(chuàng)建一個(gè)新表, 如圖所示。
在工作中, 需要使用文本文件導(dǎo)出的數(shù)據(jù)很多, 如考勤文件、 企業(yè)到企業(yè)(B2B) 的數(shù)據(jù)傳輸?shù)取?如果有需要, 也可以將這些文本文件導(dǎo)入Access數(shù)據(jù)庫中, 具體操作步驟如下。
Step 01 打開"銷售管理數(shù)據(jù) .accdb",單擊【外部數(shù)據(jù)】 選項(xiàng)卡【導(dǎo)入并鏈接】 組中的【新數(shù)據(jù)源】 下拉按鈕,在彈出的下拉菜單中選擇【從文件】選項(xiàng),在彈出的級(jí)聯(lián)菜單中選擇【文本文件】 選項(xiàng), 如圖所示。
Step 02 打開【獲取外部數(shù)據(jù) - 文本文件】 對(duì)話框, 單擊【文件名】 文本框右側(cè)的【瀏覽】按鈕, 如圖所示。
Step 03 打開【打開】 對(duì)話框,選擇要導(dǎo)入的文本文件,單擊【打開】按鈕, 如圖所示。
Step 04 返回【獲取外部數(shù)據(jù) - 文本文件】 對(duì)話框,選中【將源數(shù)據(jù)導(dǎo)入當(dāng)前數(shù)據(jù)庫的新表中】單選按鈕,單擊【確定】 按鈕, 如圖所示。
Step 05 打開【導(dǎo)入文本向?qū)А?對(duì)話框,選中【帶分隔符】 單選按鈕,單擊【下一步】 按鈕, 如圖所示。
技能拓展—導(dǎo)入固定寬度的文本文件
如果文本文件是使用固定寬度分隔開, 可以選中【固定寬度】單選按鈕,系統(tǒng)會(huì)根據(jù)寬度創(chuàng)建分隔線。 用戶也可以對(duì)分隔線執(zhí)行添加、移動(dòng)等操作,如圖所示。
Step 06 在【導(dǎo)入文本向?qū)А?對(duì)話框中的【請(qǐng)選擇字段分隔符】 欄選中【逗號(hào)】 單選按鈕, 選中【第一行包含字段名稱】復(fù)選框,單擊【下一步】 按鈕, 如圖所示。
Step 07 在【導(dǎo)入文本向?qū)А?對(duì)話框中的【字段選項(xiàng)】 欄設(shè)置各字段的名稱和數(shù)據(jù)類型, 單擊【下一步】按鈕, 如圖所示。
Step 08 在【導(dǎo)入文本向?qū)А?對(duì)話框中,選中【讓 Access 添加主鍵】 單選按鈕,單擊【下一步】 按鈕, 如圖所示。
Step 09 在【導(dǎo)入文本向?qū)А?對(duì)話框中的【導(dǎo)入到表】 文本框中輸入文件名,單擊【完成】 按鈕, 如圖所示。
Step 10 返回【獲取外部數(shù)據(jù) - 文本文件】 對(duì)話框, 直接單擊【關(guān)閉】 按鈕,如圖所示。
Step 11 操作完成后, 即可導(dǎo)入選擇的文本文件, 并在數(shù)據(jù)庫中創(chuàng)建一個(gè)新表, 如圖所示。
上面藍(lán)色字體↑“懶人簡筆畫”關(guān)注我, 就可以實(shí)現(xiàn)簡筆畫秒會(huì), [懶人大學(xué)]知識(shí)秒會(huì)的夢(mèng)想了哦
Access | ||
1.快捷鍵 | 2.創(chuàng)建數(shù)據(jù)庫 | 3.創(chuàng)建查詢 |
4.SQL查詢 | 5.常用SQL | 6.函數(shù)調(diào)用 |
7.導(dǎo)出到Excel | 8.vba操作Access | 9.在線參考 |
10.練習(xí)題 | 11.幾十本電子書 |
4000個(gè)簡筆畫秒會(huì)教程匯總 | ||
1.表情 | 2.眼睛 | 3.鼻子 |
4.嘴 | 5.發(fā) | 6.手 |
7.身 | 8.衣服 | 9.火柴人 |
10.Q版人物 | 11.貓 | 12.狗 |
13.鼠 | 14.家具 | 15.鱷魚 |
16.大象 | 17.交通 | 18.植物 |
19.樹 | 20.水果 | 21.食物 |
22.春節(jié) | 23.圣誕素材1 | 24.圣誕樹 |
25.風(fēng)景 | 26.車 | 27.樂器 |
28.房子 | 29.京劇 | 30.3D |
31.七龍珠全家福 | 32.蠟筆小新全家福 | 33.機(jī)器貓全家福 |
34.巴巴爸爸全家福 | 35.小豬佩奇全家福 | 36.旅行青蛙全家福 |
37.擠娃娃 |
懶人大學(xué)-愿天下知識(shí)都能秒會(huì) | ||
1.簡筆畫 | 2.公開課 | 3.水彩 |
4.書法 | 5.數(shù)位板 | 6.手帳 |
7.素描 | 8.速寫 | 9.花體 |
10.唱歌 | 11.尤克里里 | 12.吉他 |
13.物理 | 14.化學(xué) | 15.少兒舞蹈 |
16.C語言 | 17.爬蟲 | 18.AI音箱 |
19.PPT | 20.Excel | 21.Linux |
22.ih5 | 23.小程序 | 24.javascript |
25.公眾號(hào) | 26.聲律啟蒙 | 27.資治通鑒 |
28.幽默故事 | 29.解剖學(xué) | 30.常見病 |
31.國際音標(biāo) | 32.英語教程匯總 | 33.法語 |
34.韓語教程匯總 | 35.日語教程匯總 | 36.德語教程匯總 |
37.馬來語教程匯總 | 38.葡萄牙語教程匯總 | 39.藏語教程匯總 |
40.意大利語教程匯總 | 41.俄語教程匯總 | 42.阿拉伯語秒會(huì)教程 |
43.泰語教程匯總 | 44.西班牙語秒會(huì)教程匯總 | 45.AI教程匯總 |
46.PS秒會(huì)教程匯總 | 47.攝影教程匯總 | 48.經(jīng)典片頭欣賞 |
49.烹飪教程匯總 | 50.蒸菜教程匯總 | 51.會(huì)計(jì)教程匯總 |
52.插花教程匯總 |
懶人大學(xué)vip QQ群433569528
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。