基础问答

(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拦截到一个请求,然后修改其中的参数。最后我们在网页中可以看到修改过后要我们显示的结果