中間件安全配置

原文鏈接:http://wyb0.com/posts/middleware-security-configuration/

0x00 Apache

  • 服務(wù)器安全配置
#查看服務(wù)器運(yùn)行權(quán)限
$ ps aux|grep apache|grep -v grep
$ sudo lsof -i:80
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1377     root    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  21121 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  21122 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  21123 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  21124 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  21125 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2  24800 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)
apache2 127488 www-data    4u  IPv6  12596      0t0  TCP *:http (LISTEN)

第一行是Apache主進(jìn)程,以root權(quán)限運(yùn)行的,因?yàn)锳pache的Web端口是80或443捂襟,而在Ubuntu(Linux)中開啟小于1024的端口需要root權(quán)限蒂萎,所以主進(jìn)程必須以root權(quán)限運(yùn)行。
第二行起為Apache子進(jìn)程贷洲,其執(zhí)行用戶為www-data,www-data是Ubuntu中運(yùn)行Web服務(wù)的默認(rèn)用戶,權(quán)限較低诞仓。

Windows中Apache安裝完成后默認(rèn)是administrator權(quán)限,所以需要降權(quán)速兔,創(chuàng)建一個(gè)用戶Apache墅拭,用戶組為Guests,然后將Apache目錄下的日志的可寫權(quán)限賦給Guests賬戶涣狗。
#目錄及文件權(quán)限
修改配置文件谍婉,vim /etc/apache2/apache2.conf解決目錄遍歷漏洞
#Options Indexes FollowSymLinks
Options FollowSymLinks

或者使用chmod進(jìn)行權(quán)限限制也可以,比如使用chmod o-r flag.txt命令將www-data的讀權(quán)限去掉

windows也可以通過配置文件或者權(quán)限的設(shè)置達(dá)到上面設(shè)置的效果
#錯(cuò)誤重定向
可以通過設(shè)置.htaccess文件達(dá)到目的
比如:ErrorDocument 404 /404.html

RewriteEngine On:開啟跳轉(zhuǎn),符合正則就跳轉(zhuǎn)
RewriteRule "tttt\.html$"  "404.html"
#隱藏版本號(hào)
$ vim /etc/apache2/conf-available/security.conf
ServerTokens Prod
ServerSignature Off
#禁止執(zhí)行腳本
$ vim /etc/apache2/apache2.conf
<Directory /var/www/html/upload/> #禁止執(zhí)行php
    php_flag engine off
</Directory>
  • Apache日志格式

vim /etc/apache2/apache2.conf

#access.log格式
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

#第一行是虛擬主機(jī)日志格式
#第二行是組合日志格式(Combined Log Format)
#第三行是通用日志格式(Common Log Format)
#access.log日志示例
192.168.228.1 - - [22/Sep/2017:05:26:41 -0700] "GET /flag.txt HTTP/1.1" 403 515 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"

遠(yuǎn)端主機(jī):192.168.228.1
遠(yuǎn)端登錄名:-
遠(yuǎn)程用戶名:-
訪問時(shí)間:[22/Sep/2017:05:26:41 -0700]
HTTP請(qǐng)求:GET /flag.txt HTTP/1.1
HTTP狀態(tài)碼:403
發(fā)送的字節(jié)數(shù):515
Referer:-
User-Agent:"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"
#error.log
路徑一般為:/var/log/apache2/error.log镀钓,notice級(jí)別的消息總是會(huì)被記錄下來穗熬,而不能被屏蔽。
日志格式:[日期和時(shí)間] [錯(cuò)誤等級(jí)] 錯(cuò)誤消息

0x01 Tomcat

  • 服務(wù)器安全配置
#運(yùn)行權(quán)限
Linux中Tomcat的運(yùn)行權(quán)限與Tomcat的啟動(dòng)賬戶有關(guān)丁溅,比如以root用戶啟動(dòng)唤蔗,那獲取的webshell就也是root權(quán)限
Windows權(quán)限控制需要進(jìn)行賬戶配置,新建一個(gè)Tomcat用戶,并歸屬于Guests組妓柜,再將賬戶設(shè)置為服務(wù)登錄賬戶

webapps為Web站點(diǎn)目錄箱季,將其中文件上傳的文件夾設(shè)置為不可執(zhí)行。

#服務(wù)器后臺(tái)管理
$ vim /usr/local/tomcat/conf/tomcat-users.xml
  <role rolename="manager-gui"/>
  <user username="tomcat" password="sdkfiewnksdhsfs" roles="manager-gui"/>
  • 服務(wù)器訪問限制

    • 隱藏版本信息
    $ cd /opt/tomcat/lib
    $ jar -xvf catalina.jar #生成META-INF和org文件夾
    $ vim org/apache/catalina/util/ServerInfo.properties #編輯配置文件领虹,去掉版本信息
    $ jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties #將修改后的文件壓回jar包
    $ cd ../bin/
    $ ./startup.sh
    
    • 禁止列目錄
    vim /opt/tomcat/conf/web.xml #設(shè)置為false即可规哪,默認(rèn)就是false
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
    
  • 服務(wù)日志

$ ll /opt/tomcat/logs
localhost.2017-09-29.log:程序異常沒有被捕獲的時(shí)候拋出的地方
catalina.2017-09-29.log:程序的輸出,tomcat的運(yùn)行日志
manager.2017-09-29.log:manager項(xiàng)目專有的
host-manager.2017-09-29.log:manager項(xiàng)目專有的
localhost_access_log.2017-09-29.txt:訪問日志記錄

日志有以下7個(gè)級(jí)別:
SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST 

$ vim conf/logging.properties #修改日志級(jí)別
1catalina.org.apache.juli.AsyncFileHandler.level = FINE

0x02 Nginx

  • 隱藏版本號(hào)
$ vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;

    server_tokens off; #隱藏版本號(hào)
  • 偽造中間件類型和版本號(hào)
偽造中間件類型塌衰,修改源碼然后安裝:
$ vim src/http/ngx_http_header_filter_module.c #修改第49行
static char ngx_http_server_string[] = "Server: nginx" CRLF;

偽造版本號(hào)诉稍,修改源碼然后安裝:
$ vim nginx-1.9.9/src/core/nginx.h
#define nginx_version      1009009
#define NGINX_VERSION      "1.9.9"
#define NGINX_VER          "nginx/“ NGINX_VERSION

修改fastcgi.conf
$ vim /usr/local/nginx/conf/fastcgi.conf #修改第17行
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
  • 防止釣魚和XSS
$ vim /usr/local/nginx/conf/nginx.conf
    server {
        listen       80;
        server_name  localhost;

        add_header X-Frame-Options SAMEORIGIN; #在頭部添加X-Frame-Options防止被Frame
        add_header X-XSS-Protection "1; mode=block"; #防御XSS

DENY:瀏覽器拒絕當(dāng)前頁(yè)面加載任何Frame頁(yè)面
SAMEORIGIN:frame頁(yè)面的地址只能為同源域名下的頁(yè)面
ALLOW-FROM:origin為允許frame加載的頁(yè)面地址
  • CRLF注入
案例一:
location /sectest {
  return 302 https://$host$uri; #應(yīng)將$uri或者$document_uri改為$request_uri
}

案例二:
location / {
    rewrite ^ https://$host/$uri;
}

案例三:
server {
    listen 80 default;

    location ~ /v1/((?<action>[^.]*)\.json)?$ {
        add_header X-Action $action;
        return 200 "OK";
    }
}
  • alias導(dǎo)致的任意文件讀取
location /files { #把/files改為/files/即可修復(fù)
  alias /home/;
}

當(dāng)訪問http://joychou.me/files/x.txt,即訪問服務(wù)器上的/home/x.txt文件
當(dāng)訪問http://joychou.me/files../etc/passwd時(shí)就讀取了passwd文件了
  • 反向代理中的SSRF
反向代理語(yǔ)法:proxy_pass http://ip:port/uri/;
當(dāng)ip可控時(shí)那么反向代理的機(jī)器會(huì)對(duì)該ip發(fā)起http請(qǐng)求最疆,即可造成SSRF杯巨。
這種場(chǎng)景多出現(xiàn)在云WAF、CDN努酸、高防DDOS等網(wǎng)絡(luò)產(chǎn)品服爷。
  • add_header重定義
如果location區(qū)塊有add_header,那么以location為準(zhǔn)获诈。
如果location沒有add_header仍源,則繼承Http和server塊的add_header內(nèi)容。



Reference(侵刪):

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舔涎,一起剝皮案震驚了整個(gè)濱河市笼踩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亡嫌,老刑警劉巖嚎于,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挟冠,居然都是意外死亡于购,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門知染,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肋僧,“玉大人,你說我怎么就攤上這事控淡∩瘢” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵逸寓,是天一觀的道長(zhǎng)居兆。 經(jīng)常有香客問我,道長(zhǎng)竹伸,這世上最難降的妖魔是什么泥栖? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任簇宽,我火速辦了婚禮,結(jié)果婚禮上吧享,老公的妹妹穿的比我還像新娘魏割。我一直安慰自己,他們只是感情好钢颂,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布钞它。 她就那樣靜靜地躺著,像睡著了一般殊鞭。 火紅的嫁衣襯著肌膚如雪遭垛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天操灿,我揣著相機(jī)與錄音锯仪,去河邊找鬼。 笑死趾盐,一個(gè)胖子當(dāng)著我的面吹牛庶喜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播救鲤,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼久窟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了本缠?” 一聲冷哼從身側(cè)響起斥扛,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搓茬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體队他,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卷仑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麸折。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锡凝。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖垢啼,靈堂內(nèi)的尸體忽然破棺而出窜锯,到底是詐尸還是另有隱情,我是刑警寧澤芭析,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布锚扎,位于F島的核電站,受9級(jí)特大地震影響馁启,放射性物質(zhì)發(fā)生泄漏驾孔。R本人自食惡果不足惜芍秆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翠勉。 院中可真熱鬧妖啥,春花似錦、人聲如沸对碌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朽们。三九已至怀读,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間华坦,已是汗流浹背愿吹。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惜姐,地道東北人犁跪。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像歹袁,于是被迫代替她去往敵國(guó)和親坷衍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容