20199130 2019-2020-2《网络攻防实践》第十一次作业

20199130 2019-2020-2《网络攻防实践》第十一次作业

本次作业属于那个课程 [《网络攻防实践》]
这个作业要求在哪里 《Web应用程序安全攻防》
作业正文 下述正文

1. Web应用体系结构

1.1 Web应用体系结构中的关键组件:

(1)浏览器(2)Web服务器(3)Web应用程序(4)数据库(5)传输协议HTTP/HTTPS

1.2 Web应用安全威胁:

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

2. Web应用安全攻防技术概述

2.1 Web应用的信息收集

在前几章我们已经学过各种网络信息收集技术,比如,通过互联网彩电中的WHOIS与DNS查询、使用Web搜索引擎、以及对默认的TCP 80和443端口进行扫描来发现目标组织的Web服务器;使用类型探查技术来识别Web站点的操作系统类型与版本、及Web服务器软件的类型与版本;使用漏洞扫描技术来找出Web站点系统和服务器软件中存在的已知安全漏洞;使用查点技术获取Web服务器软件的“旗标”等等。

  • 手工审查Web应用程序结构与源代码
    (1)静态和动态生辰的页面(2)目录结构(3)辅助性文件(4)输入表单(5)查询参数字符串
  • 自动下载与镜像Web站点页面
  • 使用Google Hacking技术审查与探测Web应用程序
  • Web应用程序安全评估与漏洞探测
    (1)浏览器插件(2)免费工具集(3)商业Web应用安全评估系统和漏洞扫描器

2.2 攻击Web服务器软件

Web服务器平台中的安全漏洞主要分类:
(1)数据驱动的远程代码执行安全漏洞(2)服务器功能扩展模块漏洞(3)样本文件安全漏洞
(4)源代码泄露(5)资源解析攻击

2.3 攻击Web应用程序

在Web应用的各个层次上,安全最薄弱的环节在于Web应用程序。针对Web应用程序安全威胁类型,WASC时开放式国际安全团队,将Web应用程序中存在的安全弱点、所遭受的攻击和威胁进行了定义和分类,将Web应用程序安全威胁从攻击技术角度分为以下6类。
(1)针对认证机制的攻击:包括暴力枚举、利用认证机制不完善弱点、攻击口令回复验证机制等
(2)授权机制的攻击:包括信任/会话预测、利用授权机制不完善弱点、利用会话失效机制不完善弱点、会话身份窃取攻击
(3)客户端攻击:内容欺骗、跨站脚本攻击等
(4)命令执行攻击:缓冲区溢出、格式化字符串、LDAP注入、操作系统命令注入、SQL注入、SSI注入等
(5)信息暴露:目录列举、信息泄露、路径遍历、资源位置可预测
(6)逻辑攻击:功能滥用、拒绝服务攻击、对抗自动程序不完善、处理验证过程不完善等

2.4 攻击Web数据内容

Web站点除了通过服务器软件和应用程序中存在安全漏洞和弱点遭受攻击之外,还面临着对敏感数据内容的攻击威胁

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

2.5 Web应用安全防范措施

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

3. SQL注入

代码注入是针对Web应用程序主流攻击技术之一,代码注入根据攻击目标的不同又分为:

  • 恶意读取、修改与操纵书库的SQL注入攻击
  • 在Web服务器端安装、执行Webshell等恶意脚本的PHP注入或ASP注入攻击
  • 在Web服务器端而已执行操作命令的Shell注入攻击
  • 其他注入攻击了,LDAP注入、SSI注入、空字节注入、邮件命令注入等

3.1 SQL注入攻击原理

SQL注入漏洞是由于用户输入未被正确地过滤以消除SQL语言中地字符串转义字符,或者没有进行严格的类型判断从而使得用户可以输入并执行一些非预期的SQL指令代码。
攻击原理:向Web应用程序提供的用户输入接口(如一个动态页面的输入参数、表单的输入框等)输入一段精心构造的SQL查询命令,攻击何利用不完善的输入验证机制,使得注入代码的一致性完成攻击操作行为。

3.2 SQL注入攻击步骤和过程

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

4. XSS跨站脚本攻击

与代码注入攻击不同的是,XSS跨站脚本攻击的最终目标不是提供服务的Web应用程序,而是使用Web应用程序的用户。XSS跨站脚本漏洞在Web应用程序中,使得攻击者可以在Web页面中插入恶意的HTML或javaScript代码,当用户浏览该网页时客户端浏览器就会解析和执行这些代码从而造成获取用户敏感信息、客户端渗透攻击等后果。

4.1 XSS攻击技术原理

举例:攻击者可以在一个Web留言本程序中添加一条留言,将输入变量name填写为“”,结果这段客户端j、JavaScript代码将会被包含在留言浏览页面中,在其他用户访问留言页面时,客户端浏览器将执行页面中的“”,在他们的本地弹出显示“/xss/”的对话框。
XSS攻击实例:
(1)测试XSS漏洞(2)显示用户的会话Cookie(3)窃取用户的会话Cookie
(4)利用Cookie信息假冒其他用户发表于修改帖子(5)编写实现XSS蠕虫

4.2 XSS攻击防范措施

对XSS跨站脚本的防范分为服务器端和客户端两个方面:

  • 服务器端防范措施
    (1)输入验证(2)输出净化(3)消除危险的输入点(4)
  • 客户端防范措施
    对抗XSS攻击需提升浏览器的安全设置,如提高浏览器访问非受信网站时的安全等级、关闭Cookie功能或设置Cookie只读,此外也可以采用非主流的安全浏览器如Chrome、Opera来尽量降低安全风险。

5. 课外实践

实践一:SEED SQL注入实验
-访问www.SEEDLabSQLInjection.com查看实验所用的web应用程序,该程序是一个简单的员工管理应用程序。完成下列任务:
(1)对SELECT语句的攻击(在不知道密码的情况下登录该应用程序)
(2)对UPDATE语句的攻击(在不知道密码的情况下修改某用户资料)
(3)对抗SQL注入(修复该web应用的SQL注入漏洞)

  • 在ubuntu中输入命令sudo service apache2 start 开启服务
  • 输入命令systemctl status apache2查看是否成功启动
  • 输入网址 www.SEEDLabSQLInjection.com www.xsslabelgg.com 进入看到登录界面,随便输入一个用户名及密码,F12查看表单提交情况,可以看到进行校验的是unsafe_home.php

  • 然后用admin进行登录,当输入用户名 Admin'#,就可以让SQL语句提前结束,而不进行密码校验,#就是将密码校验的部分注释掉了。所以可以不用输密码二成功进入系统看到用户信息。

  • 由上图可知除了admin之外还有Alice、Boby、Ryan等,我们可以输入Ryan'#。登陆成功后,可以看到salary为50000,生日是4/10等信息
  • 点击edit profile修改相关信息,已知update时正确的处理语句为 UPDATE credential SET nickname='inputnickname′,email=′input_email',address='inputaddress′,Password=′hashed_pwd', PhoneNumber='inputphonenumber′WHEREID=id
    如果我们在nickname字段输入',salary='100000' where Name='Ryan'; #
    则可以把update语句改为UPDATE credential SET nickname='',salary='100000' where Name='Ryan';,后面的都由#注释掉了,然后我们保存就可将salary从50000改为100000

实践二:SEED XSS攻击实验

  • 访问www.xsslabelgg.com查看实验所用的web应用Elgg,利用XSS漏洞完成下列任务:
    (1)通过弹窗显示恶意信息
    (2)在消息窗口中显示 Cookie
    (3)窃取受害主机的 Cookie
    (4)使用窃取的Cookies进行会话劫持

  • 登陆网站,进入XSS页面,可以在more中的menber中查看到账户信息Alice,Boby,其相关密码为seedalice、seedboby

  • 在Elgg user profile中嵌入JavaScript程序,另一个用户在查看你的个人资料(profile)时,JavaScript程序将会执行并且显示一个警告窗口。
    下面的JavaScript程序用于显示一个警告窗口:

  • 登录Alice,将上面的JavaScript代码插入自己的profile中,然后登录用户Boby并查看Alice的profile,则将会看到警告窗口。


  • 同理,登录Boby,将description中的内容改为


  • 保存,跳出页面

  • 将嵌入的Javascript代码改为

    (注意:192.168.0.103为本机IP)

  • 在ubuntu中输入命令 nc -l 5555 -v ,去监听5555端口,可以看出cookie

  • 尝试添加好友,判断该web是如何发送HTTP请求的,F12查看详情。然后利用程序自动获得cookies、__elgg_token、__elgg_ts

  • 然后构造url访问,Javascript代码如下:

  • 将上述Javascript代码放在Alice的about me中:

  • 登录Boby,访问Alice的主页,则在页面显示添加好友。

6. 遇到问题及解决

(1)刚开始在监听5555号端口时未成功

  • 将命令里边的IP地址改为本机IP即可

7. 心得体会

  • 操作比较简单,但是理解还是要继续加强。
posted @ 2020-05-13 22:46  yzf0425  阅读(190)  评论(0编辑  收藏  举报