基础问答
(1)SQL注入攻击原理,如何防御
原理:把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串。
防御: 利用输入规则限制进行防御,不允许特殊字符输入
(2)XSS攻击的原理,如何防御
原理:XSS又称CSS,全称Cross SiteScript,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。
防御:对用户输入数据进行输入检查,也要进行输出检查,对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
(3)CSRF攻击原理,如何防御
原理:CSRF可以劫持会话和cookie来冒名进行 一些操作。
防御:将持久化的授权方法切换为瞬时的授权方法,在form中包含秘密信息、用户指定的代号作为cookie之外的验证。
webgoat
webgoat的中文是代罪羔羊的意思,而它是一个有很多漏洞的web应用程序,我们可以利用它来研究关于web应用程序的安全性。
在我们的kali虚拟机中输入java -jar webgoat-container-7.0.1-war-exec.jar即可运行我们的webgoat。
Phishing with XSS
首先我们需要在搜索栏中输入攻击代码,输入完毕之后点击search。
search完毕之后它会要求我们输入用户名和密码。
输入完毕之后选择确定就可以成功攻击了。
Stored XSS Attacks
我们需要创建一个帖子,然后让它在弹出的窗口中显示出来。
在标题栏可以随便输入任何指令,消息那一栏需要写入我们的代码。
然后点击我们刚才创建的帖子就会看到弹窗,表面攻击成功。
Reflected XSS Attacks
还是感觉和上一个Stored XSS攻击的方法差不多。
在access那一栏输入一个攻击代码,点击purchase后,如果弹出我们输入的代码的内容,就表示我们攻击成功了。
Cross Site Request Forgery
CSRF就是冒名登录,用代码伪造请求。
CSRF Prompt By-Pass
这个和上一个题目攻击方法也是相对比较类似的,但在消息栏输入我们的攻击代码并不能成功。
所以只能通过浏览器输入,输入后会看到confirm选项,点击它。
最后刷新一下网页,会发现我们已经成功转账。Cross Site Request Forgery (CSRF)这个实践是利用cookie冒名登录,用代码伪造请求
在message里面输入就会发出一个转钱的请求,盗取钱财。
String SQL Injection
这个题目相对来说极其简单,就是我们在web基础里面SQL也用到的' or 1=1 --'这个式子,因为这个式子是一个永真式,所以输入完后点击go,会发现会显示出所有的结果。
LAB:SQL Injection(Stage 1:String SQL Injection)
Log Spoofing
这个题目其实顾名思义,就是登陆欺骗用户。
原理就是我们输入错误的用户名后,它返回给我们的信息还是我们登陆成功。也就是我们要在用户名那写一个SQL的字符串。
Command Injection
这个界面可以执行系统命令并返回给用户。
所以我们可以用BurpSuite拦截到一个请求,然后修改其中的参数。最后我们在网页中可以看到修改过后要我们显示的结果