黑客24小时在线接单网站

联系黑客,怎么找黑客,24小时在线黑客,黑客在线QQ,找黑客

xss漏洞扫描工具(xss漏洞检测方法)

本文导读目录:

找人修复ASP网站XSS漏洞

Web开发常见的几个漏洞解决方法

平时工作,多数是开发Web项目,由于一般是开发内部使用的业务系统,所以对于安全性一般不是看的很重,基本上由于是内网系统,一般也很少会受到攻击,但有时候一些系统平台,需要外网也要使用,这种情况下,各方面的安全性就要求比较高了,所以往往会交付给一些专门做安全测试的第三方机构进行测试,然后根据反馈的漏洞进行修复,如果你平常对于一些安全漏洞不够了解,那么反馈的结果往往是很残酷的,迫使你必须在很多细节上进行修复完善。本文主要根据本人项目的一些第三方安全测试结果,以及本人针对这些漏洞问题的修复方案,介绍在这方面的一些经验,希望对大家有帮助。

基本上,参加的安全测试(渗透测试)的网站,可能或多或少存在下面几个漏洞:SQL注入漏洞、跨站脚本攻击漏洞、登陆后台管理页面、IIS短文件/文件夹漏洞、系统敏感信息泄露。

1、测试的步骤及内容

这些安全性测试,据了解一般是先收集数据,然后进行相关的渗透测试工作,获取到网站或者系统的一些敏感数据,从而可能达到控制或者破坏系统的目的。

第一步是信息收集,收集如IP地址、DNS记录、软件版本信息、IP段等信息。可以采用方法有:

1)基本网络信息获取;

2)Ping目标网络得到IP地址和TTL等信息;

3)Tcptraceroute和Traceroute 的结果;

4)Whois结果;

5)Netcraft获取目标可能存在的域名、Web及服务器信息;

6)Curl获取目标Web基本信息;

7)Nmap对网站进行端口扫描并判断操作系统类型;

8)Google、Yahoo、Baidu等搜索引擎获取目标信息;

9)FWtester 、Hping3 等工具进行防火墙规则探测;

10)其他。

第二步是进行渗透测试,根据前面获取到的数据,进一步获取网站敏感数据。此阶段如果成功的话,可能获得普通权限。采用方法会有有下面几种

1)常规漏洞扫描和采用商用软件进行检查;

2)结合使用ISS与Nessus等商用或免费的扫描工具进行漏洞扫描;

3)采用SolarWinds对网络设备等进行搜索发现;

4)采用Nikto、Webinspect等软件对Web常见漏洞进行扫描;

5)采用如AppDetectiv之类的商用软件对数据库进行扫描分析;

6)对Web和数据库应用进行分析;

7)采用WebProxy、SPIKEProxy、Webscarab、ParosProxy、Absinthe等工具进行分析;

8)用Ethereal抓包协助分析;

9)用Webscan、Fuzzer进行SQL注入和XSS漏洞初步分析;

10)手工检测SQL注入和XSS漏洞;

11)采用类似OScanner的工具对数据库进行分析;

12)基于通用设备、数据库、操作系统和应用的攻击;采用各种公开及私有的缓冲区溢出程序代码,也采用诸如MetasploitFramework 之类的利用程序集合。

13)基于应用的攻击。基于Web、数据库或特定的B/S或C/S结构的网络应用程序存在的弱点进行攻击。

14)口令猜解技术。进行口令猜解可以采用 X-Scan、Brutus、Hydra、溯雪等工具。

第三步就是尝试由普通权限提升为管理员权限,获得对系统的完全控制权。在时间许可的情况下,必要时从第一阶段重新进行。采用方法

1)口令嗅探与键盘记录。嗅探、键盘记录、木马等软件,功能简单,但要求不被防病毒软件发觉,因此通常需要自行开发或修改。

2)口令破解。有许多著名的口令破解软件,如 L0phtCrack、John the Ripper、Cain 等

以上一些是他们测试的步骤,不过我们不一定要关注这些过程性的东西,我们可能对他们反馈的结果更关注,因为可能会爆发很多安全漏洞等着我们去修复的。

2、SQL注入漏洞的出现和修复

1)SQL注入定义:

SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL注入有时候,在地址参数输入,或者控件输入都有可能进行。如在链接后加入’号,页面报错,并暴露出网站的物理路径在很多时候,很常见,当然如果关闭了Web.Config的CustomErrors的时候,可能就不会看到。

另外,Sql注入是很常见的一个攻击,因此,如果对页面参数的转换或者没有经过处理,直接把数据丢给Sql语句去执行,那么可能就会暴露敏感的信息给对方了。如下面两个页面可能就会被添加注入攻击。

①http://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestD ... type='U' and status0)0 得到第一个用户建立表的名称,并与整数进行比较,显然abc.asp工作异常,但在异常中却可以发现表的名称。假设发现的表名是xyz,则

②http://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestDB.dbo.sysobjects ... tatus0 and name not in('xyz'))0 可以得到第二个用户建立的表的名称,同理就可得到所有用建立的表的名称。

为了屏蔽危险Sql语句的执行,可能需要对进行严格的转换,例如如果是整形的,就严格把它转换为整数,然后在操作,这样可以避免一些潜在的危险,另外对构造的sql语句必须进行Sql注入语句的过滤,如我的框架(Winform开发框架、Web开发框架等)里面就内置了对这些有害的语句和符号进行清除工作,由于是在基类进行了过滤,因此基本上子类都不用关心也可以避免了这些常规的攻击了。

/// summary

/// 验证是否存在注入代码(条件语句)

/// /summary

/// param name="inputData"/param

public bool HasInjectionData(string inputData)

{

if (string.IsNullOrEmpty(inputData))

return false;

//里面定义恶意字符集合

//验证inputData是否包含恶意集合

if (Regex.IsMatch(inputData.ToLower(), GetRegexString()))

{

return true;

}

else

{

return false;

}

}

/// summary

/// 获取正则表达式

/// /summary

/// returns/returns

private static string GetRegexString()

{

//构造SQL的注入关键字符

string[] strBadChar =

{

//"select\\s",

//"from\\s",

"insert\\s",

"delete\\s",

"update\\s",

"drop\\s",

"truncate\\s",

"exec\\s",

"count\\(",

"declare\\s",

"asc\\(",

"mid\\(",

"char\\(",

"net user",

"xp_cmdshell",

"/add\\s",

"exec master.dbo.xp_cmdshell",

"net localgroup administrators"

};

//构造正则表达式

string str_Regex = ".*(";

for (int i = 0; i strBadChar.Length - 1; i++)

{

str_Regex += strBadChar[i] + "|";

}

str_Regex += strBadChar[strBadChar.Length - 1] + ").*";

return str_Regex;

}

上面的语句用于判别常规的Sql攻击字符,我在数据库操作的基类里面,只需要判别即可,如下面的一个根据条件语句查找数据库记录的函数。

/// summary

/// 根据条件查询数据库,并返回对象集合

/// /summary

/// param name="condition"查询的条件/param

/// param name="orderBy"自定义排序语句,如Order By Name Desc;如不指定,则使用默认排序/param

/// param name="paramList"参数列表/param

/// returns指定对象的集合/returns

public virtual ListT Find(string condition, string orderBy, IDbDataParameter[] paramList)

{

if (HasInjectionData(condition))

{

LogTextHelper.Error(string.Format("检测出SQL注入的恶意数据, {0}", condition));

throw new Exception("检测出SQL注入的恶意数据");

}

...........................

}

以上只是防止Sql攻击的一个方面,还有就是坚持使用参数化的方式进行赋值,这样很大程度上减少可能受到SQL注入攻击。

Database db = CreateDatabase();

DbCommand command = db.GetSqlStringCommand(sql);

command.Parameters.AddRange(param);

3、跨站脚本攻击漏洞出现和修复

跨站脚本攻击,又称XSS代码攻击,也是一种常见的脚本注入攻击。例如在下面的界面上,很多输入框是可以随意输入内容的,特别是一些文本编辑框里面,可以输入例如scriptalert('这是一个页面弹出警告');/script这样的内容,如果在一些首页出现很多这样内容,而又不经过处理,那么页面就不断的弹框,更有甚者,在里面执行一个无限循环的脚本函数,直到页面耗尽资源为止,类似这样的攻击都是很常见的,所以我们如果是在外网或者很有危险的网络上发布程序,一般都需要对这些问题进行修复。

XSS代码攻击还可能会窃取或操纵客户会话和 Cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。

[建议措施]

清理用户输入,并过滤出 JavaScript 代码。我们建议您过滤下列字符:

[1] (尖括号)

[2] "(引号)

[3] '(单引号)

[4] %(百分比符号)

[5] ;(分号)

[6] ()(括号)

[7] ( 符号)

[8] +(加号)

为了避免上述的XSS代码攻击,解决办法是可以使用HttpUitility的HtmlEncode或者最好使用微软发布的AntiXSSLibrary进行处理,这个更安全。

微软反跨站脚本库(AntiXSSLibrary)是一种编码库,旨在帮助保护开发人员保护他们的基于Web的应用不被XSS攻击。

编码方法

使用场景

示例

HtmlEncode(String)

不受信任的HTML代码。 a href=”http://www.cnblogs.com”Click Here [不受信任的输入]/a

HtmlAttributeEncode(String)

不受信任的HTML属性

hr noshade size=[不受信任的输入]

JavaScriptEncode(String)

不受信任的输入在JavaScript中使用

script type=”text/javascript”

[Untrusted input]

/script

UrlEncode(String)

不受信任的URL

a href=”http://cnblogs.com/results.aspx?q=[Untrusted input]”Cnblogs.com/a

VisualBasicScriptEncode(String)

不受信任的输入在VBScript中使用

script type=”text/vbscript” language=”vbscript”

[Untrusted input]

/script

XmlEncode(String)

不受信任的输入用于XML输出

xml_tag[Untrusted input]/xml_tag

XmlAttributeEncode(String)

不 受信任的输入用作XML属性

xml_tag attribute=[Untrusted input]Some Text/xml_tag

protected void Page_Load(object sender, EventArgs e)

{

this.lblName.Text = Encoder.HtmlEncode("scriptalert('OK');/SCRIPT");

}

例如上面的内容,赋值给一个Lable控件,不会出现弹框的操作。

但是,我们虽然显示的时候设置了转义,输入如果要限制它们怎么办呢,也是使用AntiXSSLibrary里面的HtmlSanitizationLibrary类库Sanitizer.GetSafeHtmlFragment即可。

protected void btnPost_Click(object sender, EventArgs e)

{

this.lblName.Text = Sanitizer.GetSafeHtmlFragment(txtName.Text);

}

这样对于特殊脚本的内容,会自动剔除过滤,而不会记录了,从而达到我们想要的目的。

4、IIS短文件/文件夹漏洞出现和修复

通过猜解,可能会得出一些重要的网页文件地址,如可能在/Pages/Security/下存在UserList.aspx和MenuList.aspx文件。

[建议措施]

1)禁止url中使用“~”或它的Unicode编码。

2)关闭windows的8.3格式功能。

修复可以参考下面的做法,或者找相关运维部门进行处理即可。

http://sebug.net/vuldb/ssvid-60252

http://webscan.360.cn/vul/view/vulid/1020

http://www.bitscn.com/network/security/200607/36285.html

5、系统敏感信息泄露出现和修复

如果页面继承一般的page,而没有进行Session判断,那么可能会被攻击者获取到页面地址,进而获取到例如用户名等重要数据的。

一般避免这种方式是对于一些需要登录才能访问到的页面,一定要进行Session判断,可能很容易给漏掉了。如我在Web框架里面,就是继承一个BasePage,BasePage 统一对页面进行一个登录判断。

public partial class UserList : BasePage

{

protected void Page_Load(object sender, EventArgs e)

{

...............

/// summary

/// BasePage 集成自权限基础抽象类FPage,其他页面则集成自BasePage

/// /summary

public class BasePage : FPage

{

/// summary

/// 默认构造函数

/// /summary

public BasePage()

{

this.IsFunctionControl = true;//默认页面启动权限认证

}

/// summary

/// 检查用户是否登录

/// /summary

private void CheckLogin()

{

if (string.IsNullOrEmpty(Permission.Identity))

{

string url = string.Format("{0}/Pages/CommonPage/Login.aspx?userRequest={1}",

Request.ApplicationPath.TrimEnd('/'), HttpUtility.UrlEncode(Request.Url.ToString()));

Response.Redirect(url);

}

}

/// summary

/// 覆盖HasFunction方法以使权限类判断是否具有某功能点的权限

/// /summary

/// param name="functionId"/param

/// returns/returns

protected override bool HasFunction(string functionId)

{

CheckLogin();

bool breturn = false;

try

{

breturn = Permission.HasFunction(functionId);

}

catch (Exception)

{

Helper.Alerts(this, "BasePage调用权限系统的HasFunction函数出错");

}

return breturn;

}

protected override void OnInit(EventArgs e)

{

Response.Cache.SetNoStore(); //清除缓存

base.OnInit(e);

CheckLogin();

}

否则可能会受到攻击,并通过抓包软件发现页面数据,获得一些重要的用户名或者相关信息。

还有一个值得注意的地方,就是一般这种不是很安全的网络,最好要求输入比较复杂一点的密码(强制要求),例如不能全部是数字密码或者不能是纯字符,对位数也要求多一点,因为很多人输入12345678,123456,123这样的密码,很容易被猜出来并登录系统,造成不必要的损失。

6、总结性建议

针对上面发现的问题,提出下面几条建议。

1)在服务器与网络的接口处配置防火墙,用于阻断外界用户对服务器的扫描和探测。

2)限制网站后台访问权限,如:禁止公网IP访问后台;禁止服务员使用弱口令。

3)对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含SQL 或XSS特殊字符。这些检查或过滤必须在服务器端完成。

4)关闭windows的8.3格式功能。

5)限制敏感页面或目录的访问权限。

常用的网络安全工具有哪些?

1、NMap

是一个开源且免费的安全扫描工具,可被用于安全审计和网络发现。能够工作在Windows、Linux、HP-UX、Solaris、BSD(包括Mac OS)、以及AmigaOS上。Nmap可用于探测网络中那些可访问的主机,检测它们操作系统的类型和版本,正在提供的服务,以及正在使用的防火墙或数据包过滤器的信息等。由于它既带有GUI界面,又提供命令行,因此许多网络与系统管理员经常将它运用到自己的日常工作中,其中包括:检查开放的端口,维护服务的升级计划,发现网络拓扑,以及监视主机与服务的正常运行时间等方面。

2、Wireshark

作为业界最好的工具之一,Wireshark可以提供免费且开源的渗透测试服务。通常,您可以把它当作网络协议分析器,以捕获并查看目标系统与网络中的流量。它可以在Linux、Windows、Unix、Solaris、Mac OS、NetBSD、FreeBSD、以及其他操作系统上运行。Wireshark广受教育工作者、安全专家、网络专业人员、以及开发人员的使用和喜爱。那些经由Wireshark还原的信息,可以被其图形用户界面(GUI)或TTY模式的TShark工具来查看。

3、Metasploit

作为一个安全项目,Metasploit可为用户提供有关安全风险或漏洞等方面的重要信息。该开源的框架可以通过渗透测试服务,让用户获悉各种应用程序、平台和操作系统上的最新漏洞,以及可以被利用的代码。从渗透测试角度来看,Metasploit可以实现对已知漏洞的扫描,侦听,利用,以及证据的收集。它提供可在Linux、Windows以及Apple Mac OS上运行的命令行和图形用户界面。虽然Metasploit是一种商业工具,但它附带有一个开源的有限试用版。

4、Netsparker

作为一款商业化的安全测试工具,Netsparker是一个精确、自动化且易用的Web应用安全扫描程序。该工具可以被用于自动化地识别Web应用服务中的跨站点脚本(XSS)和SQL注入等安全风险。通过基于证据的扫描技术,它不仅可以生成风险报告,还能够通过概念证明(Proof of Concept),来确认是否有误报,并能减少手动验证漏洞的时间。

5、Acunetix

是一款全自动化的Web漏洞扫描程序。它可以智能地检测、识别并报告超过4500种Web应用漏洞,其中包括XSS XXE、SSRF、主机头部注入(Host Header Injection)和SQL注入的所有变体。作为一种商业工具,Acunetix通过其DeepScan Crawler来扫描重AJAX(AJAX-heavy)客户端类型的单页面应用(SPA)和HTML5网站。

6、Nessus

是针对安全从业人员的漏洞评估解决方案。它能够协助检测和修复各种操作系统、应用程序、乃至设备上的漏洞、恶意软件、配置错误、以及补丁的缺失。通过运行在Windows、Linux、Mac、Solaris上,用户可以用它来进行IP与网站的扫描,合规性检查,敏感数据搜索等测试。

7、W3af

作为一个免费工具,W3af是一个Web应用攻击和审计框架。它通过搜索、识别和利用200多种已知的Web应用漏洞,来掌控目标网站的总体风险。这些漏洞包括:跨站点脚本(XSS)、SQL注入、未处理的应用错误、可被猜测的密钥凭据、以及PHP错误配置等。W3af不但适用于Mac、Linux和Windows OS,而且提供控制台和图形用户界面。

8、Zed Attack Proxy

由OWASP开发的免费且开源的安全测试工具。它可以让您在Web应用中发现一系列安全风险与漏洞。由于支持Unix/Linux、Windows和Mac OS,即使您是渗透测试的新手,也能轻松地上手该工具。

9、Burpsuite

作为一个严控“入侵者”扫描工具,Burpsuite被部分安全测试专家认为:“如果没有它,渗透测试将无法开展。”虽然不是免费,但是Burpsuite提供丰富的功能。通常,人们可以在Mac OS X、Windows和Linux环境中使用它,以实现爬取内容和功能,拦截代理,以及扫描Web应用等测试目的。

10、Sqlninja

作为最好的开源渗透测试工具之一,Sqlninja可以利用Microsoft SQL Server作为后端,来检测Web应用上的SQL注入威胁和漏洞。该自动化测试工具提供命令行界面,可以在Linux和Apple Mac OS X上被使用。Sqlninja具有包括:对远程命令进行计数,DB指纹识别,及其检测引擎等描述性功能。

web漏洞扫描工具有哪些

1、Nexpose:跟其他扫描工具不同的是,它的功能十分强大,可以更新漏洞数据库,也可以看出哪些漏洞可以被Metasploit Exploit,可以生成非常详细、强大的Report,涵盖了很多统计功能和漏洞的详细信息。

2、OpenVAS:类似Nessus的综合型漏洞扫描器,可以用来识别远程主机、Web应用存在的各种漏洞,它使用NVT脚本对剁成远程系统的安全问题进行检测。

3、WebScarab:可以分析使用HTTP和HTTPS协议进行通信的应用程序,它可以简单记录观察的会话且允许操作人员以各种方式进行查看。

4、WebInspect:是一款强大的Web应用程序扫描程序,有助于确认Web应用中已知和未知的漏洞,还可以检查一个Web服务器是否正确配置。

5、Whisker/libwhisker:是一个Perla工具,适合于HTTP测试,可以针对许多已知的安全漏洞,测试HTTP服务器,特别是检测危险CGI的存在。

6、Burpsuite:可以用于攻击Web应用程序的集成平台,允许一个攻击者将人工和自动的技术进行结合,并允许将一种工具发现的漏洞形成另外一种工具的基础。

7、Wikto:是一个Web服务器评估工具,可以检查Web服务器中的漏洞,并提供与Nikto一样的很多功能,但增加了许多有趣的功能部分。

8、Watchfire AppScan:是一款商业类的Web漏洞扫描程序,简化了部件测试和开发早期的安全保证,可以扫描许多常见的漏洞,如跨站脚本攻击、HTTP响应拆分漏洞、参数篡改、隐式字段处理、后门/调试选项、缓冲区溢出等等。

9、N-Stealth:是一款商业级的Web服务器安全扫描程序,主要为Windows平台提供扫描,但并不提供源代码。

如何测试XSS漏洞?

试试腾讯电脑管家修复漏洞

腾讯电脑管家会根据你的系统环境智能筛选,若是发现不适用于你的系统环境的漏洞补丁也会智能忽略,将因补丁引起问题的机率较到最低。而至于磁盘空间的占用你是不用担心的,补丁备份所占用的空间并不高,你可以在清理垃圾后选择深度清理,然后选择Windows Update或自动更新数据库文件进行清理。至于系统性能,则正常情况下基本上不受影响。

打开腾讯电脑管家——工具箱——修复漏洞,进行漏洞扫描和修复。

建议设置开启自动修复漏洞功能,开启后,电脑管家可以在发现高危漏洞(仅包括高危漏洞,不包括其它漏洞)时,第一时间自动进行修复,无需用户参与,最大程度保证用户电脑安全。尤其适合老人、小孩或计算机初级水平用户使用。开启方式如下:进入电脑管家“修复漏洞”模块—“设置”,点击开启自动修复漏洞即可。腾讯电脑管家,杀毒+管理2合1,还可以自动修复漏洞:第一时间发现并修复系统存在的高危漏洞,在不打扰您的情况下自动为系统打上漏洞补丁,轻轻松松将病毒木马拒之门外。

动态漏洞扫描工具的缺点

动态漏洞扫描工具的缺点要分一下几种类型讨论:

AWVS:漏洞扫描速度较快,准确率较高,漏洞规则库较为全面。漏洞验证可查看请求响应代码,但无中文界面。报表功能完整。有多重漏洞的验证工具。

Appscan:漏洞扫描速度一般,准确率最高,漏洞规则库最全面。漏洞验证可查看请求相应代码,拥有较完整的漏洞修复建议。报表功能完整。全中文界面

HPWebInspect:漏洞扫描速度一般,准确率较高,扫描类型较多。报表功能强大。可查看请求响应代码。无中文界面。

WebCruiser:此工具偏向渗透利用工具,扫描功能较弱。仅有轻量级SQL注入和XSS漏洞的扫描功能。具有SQL注入漏洞利用功能。

Nexpose:扫描速度快,能扫描系统层和web层2类漏洞,但web漏洞发现能力不如appscan,系统扫描能力不如Nessus。

如何通过BurpSuite检测Blind XSS漏洞

打开腾讯电脑管家——工具箱——修复漏洞,进行漏洞扫描和修复。

建议设置开启自动修复漏洞功能,开启后,电脑管家可以在发现高危漏洞(仅包括高危漏洞,不包括其它漏洞)时,第一时间自动进行修复,无需用户参与,最大程度保证用户电脑安全。尤其适合老人、小孩或计算机初级水平用户使用。开启方式如下:进入电脑管家“修复漏洞”模块—“设置”,点击开启自动修复漏洞即可。

  • 评论列表:
  •  黑客技术
     发布于 2022-06-03 03:40:27  回复该评论
  • 入用作XML属性 xml_tag attribute=[Untrusted input]Some Text/xml_tagprotected void Page_Load(object sender, EventArgs e)
  •  黑客技术
     发布于 2022-06-03 06:07:40  回复该评论
  • 全面。漏洞验证可查看请求相应代码,拥有较完整的漏洞修复建议。报表功能完整。全中文界面HPWebInspect:漏洞扫描速度一般,准确率较高,扫描类型较多。报表功能强大。可查看请求响应代码。无中文界面。WebCruiser:此工具偏向渗透利用工具,扫描功能较弱。仅有轻量级SQL注入和
  •  黑客技术
     发布于 2022-06-03 06:46:13  回复该评论
  • 查一个Web服务器是否正确配置。5、Whisker/libwhisker:是一个Perla工具,适合于HTTP测试,可以针对许多已知的安全漏洞,测试HTTP服务器,特别是检测危险CGI的存在。6、Burpsuite:可以用于攻击Web应用

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.