20145202马超《网络对抗》Exp9*_* Web安全基础实践

本实践的目标理解经常使用网络攻击技术的基本原理。Webgoat实践下相关实验。css

1.实验后回答问题html

(1)SQL注入攻击原理,如何防护java

  • 感受上次作的也是sql注入,就是故意的非法输入(输入的是一些指令)让他读进去,而后在里面执行。
  • 防护手段:一个是字符串检测,另外一个是限制输入字符串的长度。
    (2)XSS攻击的原理,如何防护
  • xss攻击就是攻击网页使得其余用户查看网页时受到影响。
  • 防护手段:程序员应该防止下发界面显示html标签,把</>等符号转义
    (3)CSRF攻击原理,如何防护
  • 经过假装来自受信任用户的请求来利用受信任的网站,即受害用户登陆受信任网站后,在本地生成了COOKIE而又在不登出该网站的状况下,访问了危险网站,而此时访问的危险网站可能就已经写入了利用你的身份进行而恶意操做的代码
  • 防护手段:少登录不知名网站,不长时间保存cookie
    实验指导:http://www.cnblogs.com/20145224kevs/p/6826084.html
    2.实验总结与体会
  • 感受我所作的就是站在巨人的肩膀上稍微跳了一下,由于此次课题负责人是我舍友感受他在本身作的时候仍是很累的,然而咱们作的时候是能够根据他找到的答案来直接将结果作出来,是比较快,并且轻松的,这可能也就是研究性学习和普通学习之间的区别。

3.实践过程记录
此次尝试一波文字描述程序员

启动WebGoat

  • 在终端使用指令java -jar webgoat-container-7.0.1-war-exec.jar,等待其显示
    信息: Starting ProtocolHandler ["http-bio-8080"]
  • 打开浏览器,访问localhost:8080/WebGoat,登录便可开始答题。web

    Injection Flaws

  • Command Injection:命令注入,要求可以在目标主机上执行任意系统命令便可;
    1.首先咱们须要肯定进行注入的位置,网页中并无文本框,只有一个下拉的选项栏,因此咱们只能修改这个下拉栏的值。有两种方式能够修改,可使用BurpSuite拦截再修改,也能够直接修改页面源代码;
    2.我此次试验并无用到BurpSuite使用的是修改页面代码的方法
    3.使用组合键Shift+Ctrl+C查看页面源代码,鼠标单击下拉选项栏,这时候会自动的帮你定位到相应的代码段,找到其中一个option,右键鼠标Edit HTML,这时候就可写东西了。
    4.css应该是内嵌或者外嵌的框架,右键了之后发现并不能改,script里面能够在代码段里设置断点,html里面能够直接编辑。
    5.直接在option后加上"&&ifconfig"便可,而后回到网页,找到而且提交刚刚修改过的选项。ifconfig是看ip和网关,用别的也行
  • Numeric SQL Injection:数字型SQL注入,要求经过注入SQL字符串的方式查看全部的数据;
    1.一样是修改页面代码,先查看页面源代码。
    2.而后锁定到具体的代码,点击下拉栏。
    3.往里面加入代码,这里在Value后加上or 1 = 1 - -便可
  • Log Spoofing:日志欺骗,要求使用户名为“admin”的用户在日志中显示“成功登陆”(实际上并无成功);
    这个实验主要是为了欺骗人眼,因为页面会将输入的用户名返回,因此咱们能够在用户名上动手脚,输入用户名%0d%0aLogin Succeeded for username: admin;
    其中%0a%0d是ASCII码的回车换行的意思
  • String SQL Injection:字符串注入,要求经过SQL注入将全部信用卡信息显示出来;
    有文本框的题相对来讲都比较轻松,输入' or 1 = 1 --便可
  • LAB SQL Injection【SQL注入实验】:
    1.String SQL Injection:字符串型注入,要求使用SQL注入绕过认证,实现无密码登录;
    先把长度限定改成15,把文本框格式改成text,在密码栏输入' or 1 = 1。
    2。Numeric SQL Injection:数字型注入,要求使用一个普通员工的帐户,浏览其BOSS的帐户信息;
    首先经过Larry的帐户登录(密码为larry),咱们先试着把Value的值改成Boss的对应值修改成112 or 1= 1,此次成功了输出信息,可是仍是Larry的信息,看了别人的博客发现应该是将最首位的信息输出。那么此次咱们能够对信息进行排序让他排在首位。用社会工程学解释老板应该是工资最高的,因此为了把老板排到第一个SQL注入排序以下112 or 1=1 order by salary desc;sql

  • Database Backdoors:数据库后门,要求使用SQL注入修改员工工资;
    若是熟悉SQL语句的话能够指定,修改信息用update语句,具体注入语句为:101 or 1=1; update employee set salary=100000数据库

  • Blind Numeric SQL Injection:数字型盲注入,要求找到pins表中cc_number字段值为1111222233334444的记录中pin字段的数值;
    感受利用折半查找会比较快一点,可是我没有用,由于看别人的博客答案已经被肯定为为2364,我试了一下,居然2364是对的,那就说明每一个人的答案都同样,这并非随机的。浏览器

  • Blind String SQL Injection:字符串型盲注入,要求找到pins表中cc_number字段值为4321432143214321的记录中pin字段的数值。pin字段类型为varchar;
    这个题目我依旧是抄的答案只不过是猜ASCII的值罢了,答案是Jill;
    上面这两个题目若是要本身作的话会比较久,可能须要专门写个脚本不停的循环来试,不过计算机的优势也就在于速度快。cookie

    Cross-Site Scripting (XSS)

  • Phishing with XSS:XSS钓鱼,要求建立一个表单,诱骗访问者输入用户名密码,并将表单提交到http://localhost:8080/WebGoat/capture/PROPERTY=yes&ADD_CREDENTIALS_HERE
    代码:







    This feature requires account login:






    Enter Username:





    Enter Password:










    上面那段代码居然会直接在博客园以这种方式呈现,不过这样也好。
  • Stored XSS Attacks:存储型XSS攻击,要求在信件中写入一个网页或弹窗:
    具体代码应该是
  • Reflected XSS Attacks:反射型XSS攻击,要求获得脚本访问信用卡表单字段
    ");
  • Cross Site Repuest Forgery
    1.这个实践是利用cookie冒名登陆,用代码伪造请求
    2.在message里面输入
  • CSRF Prompt By-Pass
    这个问题你们写的大概分为两种,一中是写两个iframe的另外一种是蔡野同窗的,这个攻击我并非很懂并且经过评语来看写两个frame好像不太对,但我用两个frame确实可以作出来。

    网络

注释:这博客园有个大问题,应该算是个漏洞吧,我在博客院里面写web的代码他会直接识别(至少是直接识别一部分),我打算免考题往这个方向作。

相关文章
相关标签/搜索