20145308 《网络对抗》Web安全基础实践 学习总结

20145308 《网络对抗》 Web安全基础实践 学习总结

实验内容

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

    基础问题回答

  • (1)SQL注入攻击原理,如何防御
  • 通过在文本框中输入的字符串与web中事先定义好的SQL语句结合,构成注入攻击的SQL实现攻击
  • 主要还是通过编程时多多实现对输入字符串的合法性检验
  • (2)XSS攻击的原理,如何防御
  • 通过对网页注入可执行代码,实现攻击
  • 通过网页编程实现对输入内容的过滤
  • (3)CSRF攻击原理,如何防御
  • 跨站请求伪造,通过伪装受信任用户的请求利用受信任网站,利用用户在可信网站上没有登出的COOKIE做恶意操作
  • 经常删除保存的COOKIE

    实验总结与体会

  • 这次实验在WebGoat里做了SQL注入的10个相关实践,从上周学习的简单通过文本框中输入字符串构造SQL语句进行SQL注入到在文本框中提交文本或者发送邮件做XSS攻击,还有利用;邮件发送含有恶意URL请求的HTML对象来利用用户的COOKIE做非法操作

    实践过程记录

  • 开启webgoat
    884673-20170514115257379-1048926892.png

884673-20170514115259957-1346560036.png

  • 最小化启动页面
  • 浏览器访问WebGoat
    884673-20170514115326972-1432959662.png

SQL注入

Numeric SQL Injection
  • 构造SQL语句,显示出数据库中不应该显示的信息
  • 首先开启BurpSuite
  • 设置代理,添加8888端口
  • BurSuite捕获到数据包
  • 修改station值,让SQL语句变为SELECT * FROM weather_data WHERE station = 101 or 1=1
    884673-20170514115700566-1922714074.png

  • 点击GO,修改成功
    884673-20170514115654863-950449338.png

  • 一激动,成功了忘截图,只剩一个小钩钩了
    884673-20170514115650301-570184471.png

  • 关闭BurSuite并设置浏览器不使用代理

    Log Spoofing
  • 构造字符串,用显示的登录信息欺骗登陆的用户,以为自己的登陆成功
  • 在登陆界面的用户名处输入%0d%0aLogin Succeeded! admain
  • 显示的其实还是登录失败的信息,只不过在视觉上欺骗了用户
    884673-20170514115642879-1944417020.png

String SQL Injection
  • 通过构造SQL语句显示数据库中所有信用卡的信息
  • 修改语句构造SELECT * FROM user_data WHERE last_name = '' or 1=1;--'显示全部信息
    884673-20170514115637472-1346205481.png
DataBase Backdoors stage1
  • 输入101 or 1=1;update employee set salary=3;构造SQL语句,创建了salary字段
    884673-20170514115624832-1682293642.png
DataBase Backdoors stage2
  • 通过题目给的SQL语句注入,实现创建一个后门,一旦添加一个新用户,就将新用户的邮箱修改为john@hackme.com
    884673-20170514115614551-1212656087.png
Blind Numeric SQL Injection
  • 通过SQL注入,在pins表中找到cc_number值为1111222233334444的pin值为多少
  • 输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444')>500);尝试大于500,成功;小于1000,失败;所以应该大于1000,一直用二分法尝试
    884673-20170514115559051-1530537427.png

884673-20170514115553566-2092097677.png

  • 最后逼近到2364,猜测为2364,成功
    884673-20170514115546926-1765557907.png

  • 输入2364
    884673-20170514115534488-1844031439.png

Blind String SQL Injection
  • 原理基本上和Blind Numberic SQL Injection相同,这次是查询登录名是什么,也是构造能够查询登录名的SQL语句,一点点猜
  • 构造SQL字符串101 AND (SUBSTRING((SELECT name FROM pins WHERE cc_number='4321432143214321'),1,1)<'M');查询第一个字母是否小于M,成功;查询小于B,失败
    884673-20170514115524004-1121840146.png

884673-20170514115517972-113740897.png

  • 依次尝试,最后试出来是Jill
    884673-20170514115513363-7188263.png

XSS攻击

Reflected XSS Attacks
  • 通过在文本框中输入,注入JS代码<script>alert(document.cookie);</script>,获得cookies
    884673-20170514115504691-835660275.png
Stored XSS Attacks
  • 通过网站文本框输入,注入js代码,尝试盗走用户cookies
  • 输入一段JS代码<script>alert(document.cookie);</script>提交
  • 点击提交的文本
    884673-20170514115455722-268452453.png

CSRF 攻击

Cross SSite Request Foregery(CSRF)
  • 在文本框中提交一个有URL恶意请求的代码,<img src='attack?Screen=278&menu=900&transFunds=100000' width='1', height='1'>,其中scr=278,menu=900,点击就会执行
    884673-20170514115445441-1070559336.png
CSRF Prompt By-Pass
  • 与上个实验类似,除了转账金额还增加了确认转账,同样构造两个包含恶意URL的图片,此次scr=268,增加<img src='attack?Screen=268&menu=900&transFunds=CONFIRM' width='1', height='1'>提交后点击
    884673-20170514115439316-1271152822.png

成功列表

884673-20170514115432816-121009992.png

884673-20170514115428160-1239717841.png

转载于:https://www.cnblogs.com/yg961022/p/6852075.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值