包含apachexss的词条

第三方分享代码
hacker 3年前 (2022-07-10) 黑客服务 77 1

目录介绍:

Apache/PHP环境,怎么防止WebShell啊,头疼

etc/passwd,/etc/init.d目录本来就是所有用户都可以访问的。

与其设置webshell的权限,不如做好web的安全开发,关闭不安全方法;;做好输入校验,输出编码,防止SQL注入,跨站脚本,XSS;以及安全配置,关闭web容器控制台……

另外就是要做好操作系统的安全防护,用户名密码不能太简单,增加防火墙

只要你的webshell不被非法获取,不额外设置webshell有什么关系。

SpringMVC如何有效的防止XSS注入?

在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原

在显示的时候对非法字符进行转义

如果项目还处在起步阶段,建议使用第二种,直接使用jstl的c:out标签即可解决非法字符的问题。当然,对于Javascript还需要自己处理一下,写一个方法,在解析从服务器端获取的数据时执行以下escapeHTML()即可。

附:Javascript方法:

String.prototype.escapeHTML = function () {

return this.replace(//g, ‘’).replace(//g, ‘’).replace(//g, ‘’).replace(/”/g, ‘"’);}

如果项目已经开发完成了,又不想大批量改动页面的话,可以采用第一种方法,此时需要借助Spring MVC的@InitBinder以及org.apache.commons.lang.PropertyEditorSupport、org.apache.commons.lang.StringEscapeUtils

public class StringEscapeEditor extends PropertyEditorSupport {

private boolean escapeHTML;

private boolean escapeJavaScript;

private boolean escapeSQL;

public StringEscapeEditor() { super(); }

public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {super();this.escapeHTML = escapeHTML;

this.escapeJavaScript = escapeJavaScript;

this.escapeSQL = escapeSQL;}@Overridepublic void setAsText(String text) {

if (text == null) {

setValue(null);} else {String value = text;

if (escapeHTML) { value = StringEscapeUtils.escapeHtml(value); }

if (escapeJavaScript) { value = StringEscapeUtils.escapeJavaScript(value); }

if (escapeSQL) { value = StringEscapeUtils.escapeSql(value); } setValue(value); }}@Overridepublic String getAsText() { Object value = getValue(); return value != null ? value.toString() : “”; }}

在上面我们做了一个EscapeEditor,下面还要将这个Editor和Spring的Controller绑定,使服务器端接收到数据之后能够自动转移特殊字符。

下面我们在@Controller中注册@InitBinder

@InitBinder

public void initBinder(WebDataBinder binder) {

这个方法可以直接放到abstract Controller类中,这样子每个Controller实例都能够拥有该方法。

对自己电脑上的Apache服务器进行XSS攻击,能不能在报文里看出问题

解决方案:

在httpd.conf的尾部添加:

TraceEnable off

备注:UPUPW Apache版已经修复此漏洞

如何验证apache httponly cookie漏洞

insightlabs里看到

漏洞原理分析就不多说了,文章里都有

但并未提到漏洞修补方法,正好在这做个补充。

漏洞原理和过程:

1.受害者中了跨站,浏览器发出携带超大cookies的包

2.服务器返回400错误,并会在response包里返回cookies内容

其中也包括httponly的。如图,xss0被设置为httpony依然显示出来

解决方案:

于是可以通过错误处理来屏蔽。

Apache官方提供4种错误处理方式 如下

In the event of a problem or error, Apachecan be configured to do one of four things,

1.output asimple hardcoded error message输出一个简单生硬的错误代码信息

2.output acustomized message输出一段信息

3.redirect to alocalURL-pathto handle the problem/error转向一个本地的自定义页面

4.redirect to an externalURLto handle theproblem/error转向一个外部URL

经测试,对于400错误只有方法2有效,返回包不会再包含cookie内容

Apache配置:

ErrorDocument400 " security test"

当然,升级apache到最新也可:)。

Apache TomcatHTTP响应消息头泄露信息的处理

一、如何查看HTTP响应消息头

Windows/Linux下使用curl小工具可获取响应头信息。Linux发行版光盘中一般都自带curl包,只要安装即可;Windows可从网站下载应版本,无需安装即可直接运行。

当然,也可用telnet命令HEAD方法直接获取响应头信息,如

$ telnet 80

输入以下命令(其中,“HEAD”必须大写)并按两次回车即能获取响应头信息。

HEAD / HTTP/1.0

在浏览器中也可以查看响应消息头,例如IE通过打开“开发人员工具”功能进行分类查看,Google

Chrome可通过打开“审查元素”功能来查看,firefox里需要安装上firebug这个插件。当然,众多的HTTP抓包分析工具(如HttpWatch、Fiddler2)也具备这个功能。

这里以curl小工具为例。

示例:360搜索网站

$ curl -I

HTTP/1.1 302 Moved Temporarily

Date: Sun, 05 Apr 2015 08:10:37 GMT

Content-Type: text/html

Content-Length: 154

Connection: keep-alive

Location:

该网站重定向至,继续跟踪

$ curl -I

HTTP/1.1 200 OK

Date: Sun, 05 Apr 2015 08:11:12 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

Set-Cookie:

GUID=DazCGzqNk4eim3qSM6w7RMLQeTaQ6WbBYM0SxmC0+lVAiVnzCpxKhihMu6boXYSBZAYymholrHXSVpYClYE=|a|1428221472.4039;expires=Tue,

04-Apr-17 08:11:12 GMT;path=/

Set-Cookie: _S=6ooi1qd05hbnhp59r64v0dohb6; expires=Sun, 05-Apr-2015 08:21:12 GMT; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Set-Cookie: QiHooGUID=A64C6CE468ACF3992B3A429E5E92EE6D.1428221472406; expires=Tue, 04-Apr-2017 08:11:12 GMT; path=/

Set-Cookie: QiHooGUID=D441EB2BD049F9D4AD196BA8977E9217.1428221472406; expires=Tue, 04-Apr-2017 08:11:12 GMT; path=/

Set-Cookie: so_paper_xmon=0; expires=Sat, 04-Apr-2015 08:11:12 GMT; path=/

可以看到,已经隐藏了Server头,Set-Cookie头中有用的信息是QiHooGUID,显然进行过修改。已经无法从头信息中分析猜测服务器软件部署情况。

$ curl -k -I

HTTP/1.1 200 OK

Cache-Control: private, max-age=604800

Expires: Sat, 28 Mar 2015 05:05:05 GMT

Date: Sat, 28 Mar 2015 05:05:05 GMT

Refresh: 0;URL=

Content-Type: text/html; charset=ISO-8859-1

Content-Length: 234

X-Content-Type-Options: nosniff

X-Frame-Options: SAMEORIGIN

X-XSS-Protection: 1; mode=block

Server: GSE

Alternate-Protocol: 443:quic,p=0.5

利用Tomcat建立的网站就显示了一些信息:

Server: Apache-Coyote/1.1

如果是IIS服务器,还可能会有X-Powered-By, X-AspNet-Version, and X-AspNetMvc-Version等信息。

Server: Microsoft-IIS/6.0

Server: Microsoft-IIS/7.0

Server Microsoft-IIS/7.5

X-Powered-By: ASP.NET

X-AspNet-Version 4.0.303319

X-AspNet-Version: 2.0.50727

X-AspNet-Version: 1.1.4322

X-AspNetMvc-Version: 1.0

X-AspNetMvc-Version 3.0

相关推荐

网友评论

  • (*)

最新评论

  • 访客 2022-07-10 19:59:13 回复

    d error message输出一个简单生硬的错误代码信息 2.output acustomized message输出一段信息 3.redirect to alocalURL-pathto handle the problem/error转向一个本地

    1