标签:脚本 跨站 log 漏洞 第十五 课堂 data conn
【悟空云课堂】第十五期:跨站脚本漏洞
什么是跨站脚本漏洞?
从用户控制的输入到输出之前软件没有对其进行过滤或没有正确过滤,这些输出用作向其他用户提供服务的网页。
跨站脚本(XSS)漏洞通常在以下情况发生:
(1)不可信数据进入网络应用程序,通常通过网页请求;
(2)网络应用程序动态地生成一个带有不可信数据的网页;
(3)在网页生成期间,应用程序不会阻止Web浏览器可执行的内容数据,例如JavaScript,HTML标签,HTML属性、鼠标事件、Flash、ActiveX等;
(4)受害者通过浏览器访问的网页包含带有不可信数据的恶意脚本;
(5)由于脚本来自于通过web服务器发送的网页,因此受害者的web浏览器会在web服务器域的上下文中执行恶意脚本;
(6)违反web浏览器的同源策略,同源策略是一个域中的脚本不能访问或运行其他域中的资源或代码。
跨站脚本漏洞的构成条件有哪些?
满足以下条件,就构成了一个该类型的安全漏洞:
1、数据从不可靠来源(包括但不局限于不可靠用户的输入信息或是不可靠用户可能更改的文件)进入应用程序;
2、该数据未经过滤或不正确地过滤特殊字符后,直接使用;
跨站脚本漏洞会造成哪些后果?
关键词:执行未经授权的代码或命令;旁路保护机制;读取应用程序数据;
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号。
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力。
3、盗窃企业重要的具有商业价值的资料。
4、非法转账。
5、强制发送电子邮件。
6、网站挂马。
7、控制受害者机器向其它网站发起攻击。
跨站脚本漏洞的防范和修补方法有哪些?
- 输入验证:对输入的信息进行验证。仔细检查每个输入参数,以确定允许的特定字符和格式。
- 输出编码:使用并指定下游组件可处理的输出编码格式。常用编码包括ISO-8859-1,UTF-7和UTF-8。
跨站脚本漏洞样例:
public class Persist_XSS
{
public PreparedStatement statement = null;
public ResultSet rs = null;
static final Logger log = Logger.getLogger("local-logger");
public void bad(HttpServletRequest request, HttpServletResponse response,Connection conn)
{
String data = ""; /* init data */
try {
statement = conn.prepareStatement("select name from users where name = 'lily'");
rs = statement.executeQuery();
data = rs.getString(1);
} catch (SQLException e1) {
log.info("SQLException");
}finally {
try {
rs.close();
} catch (SQLException se) {
log.info("Error closing conn");
}
try {
statement.close();
} catch (SQLException se) {
log.info("Error closing conn");
}
try {
conn.close();
} catch (SQLException se) {
log.info("Error closing conn");
}
}
if (data != null)
{
/* POTENTIAL FLAW: data not validated */
try {
response.getWriter().println("<br>bad() - Parameter name has value " + data); // bad 存储型XSS
} catch (IOException e) {
log.info("IOException");
}
}
}
//…
用Wukong(悟空)软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着“跨站脚本” 导致的代码缺陷,如下图:
跨站脚本在CWE中被编号为CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
更多的信息请参考CWE官网:http://cwe.mitre.org/data/definitions/79.html
了解更多安全资讯 请关注公众号 中科天齐软件安全中心
标签:脚本,跨站,log,漏洞,第十五,课堂,data,conn 来源: https://blog.csdn.net/Tianqi_Wukong/article/details/112866211
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。