• 20169202 2016-2017-2《网络攻防》第五周学习总结


    教材内容学习与总结

    第十一章 Web应用程序安全攻防

    Web应用程序依赖于浏览器对应用程序进行渲染执行。Web应用体系主要有浏览器完成数据显示与展示内容的渲染功能;服务器端则有Web服务器软件、 Web应用程序及后端数据库构成,并通过经典的三层架构(three-tiers),即表示层、业务逻辑层和数据层,来进行组织和架构。二者之间通过因特网或内联网上HTTP/HTTPS应用层协议的请求与应答进行通信。

    Web攻防:

    信息情报收集

    手工审查Web应用程序结构与源代码
    自动下载与镜像Web站点页面
    使用GooGle Hacking技术审查雨天猜测Web应用程序

    攻击Web服务器软件

    Web服务器平台安全漏洞:数据驱动的远程代码执行安全漏洞、服务器功能拓展模块漏洞、样本文件安全漏洞、源代码泄露、资源解析攻击。

    攻击Web应用程序

    Web应用程序安全威胁从攻击者技术角度分为如下六类:针对认证机制攻击、授权机制攻击、客户端攻击、命令执行攻击、信息暴露、逻辑攻击。 最流行的的两类Web应用程序安全漏洞及攻击技术:SQL注入和XSS跨站脚本。

    攻击Web数据内容

    具体包括安全敏感数据泄露、网站内容遭到篡改以及不良信息内容上传威胁。

    Web应用安全防范措施

    • Web站点网络传输安全防范措施:使用HTTPS,使用加密连接通道、对关键Web服务器设置静态绑定MAC-IP映射。
    • Web站点操作系统及服务安全设防措施:及时的补丁更新、进行远程阿奴那漏洞扫描、关闭不使用的服务、设置强口令字、部署防火墙、数据备份等。
    • Web应用程序安全设防措施:使用静态HTML、使用具有良好安全声誉及稳定技术支持力量的Web应用软件包、除非必要才使用自主或者外包Web应用程序、使用Web服务器软件提供的日志功能。
    • Web站点数据安全设防措施:提高维护人员数据安全意识、对维护网站数据安全实施日常监测和防护。

    SQL 注入

    SQL注入攻击步骤:

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

    SQL 注入攻击工具

    Wposion 能在动态web文档中找出SQL注入漏洞
    wieliekoek.pl 以网站镜像工具生成的输入为输出,对表单页面注入字符串修改
    SPIKE Proxy 对待注入的字符串进行定制
    SPI Toolkit工具包

    SQL注入攻击防范

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

    XSS跨站脚本攻击

    XSS攻击原理:是Web应用程序对用户数填入内容的安全认证与锅炉不完善

    攻击类型:持久性XSS漏洞和非持久性XSS漏洞,或称为持久性XSS攻击和非持久性XSS攻击。

    XSS攻击防范措施

    服务器端:输入验证、输出净化、消除危险的输入点

    客户端: 提示呢个浏览器的安全设置,如关闭cookie或者设置cookie只读等。

    第十二章 Web浏览器安全攻防

    Web浏览器软件安全困境三要素

    复杂性、可扩展性、连通性。

    Web安全威胁位置

    传输网络的瓦那个罗协议安全威胁
    Web浏览端系统平台的安全威胁
    Web浏览器软件及插件程序的渗透攻击威胁
    互联网用户涩会工程学攻击威胁

    Web浏览端渗透攻击威胁

    网页木马

    网络钓鱼

    网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式。

    教材问题及解决

    SQL注入攻击不太会,学习了@20169203@20169205@20169206三位大神的博客得以解决。

    SQL注入

    1、 运行 Apache Server:镜像已经安装,只需运行命令 %sudo service apache2 start
    2、 phpBB2 web 应用:镜像已经安装,通过 http://www.sqllabmysqlphpbb.com 访问,应
    用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/
    3、 配置 DNS: 上述的 URL 仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts
    文件使 http://www.sqllabmysqlphpbb.com 指向本机 IP 127.0.0.1。如果需要在其他机器访
    问,应该修改 hosts 文件,使 URL 映射到 phpBB2 所在机器的 IP。

    4、关闭对抗措施,建议使用sudo gedit php.ini,gedit有图形化,sudo是为了有权限保存。

    xss实验

    登陆www.sqllabmysqlphpbb.com网站 需要用户名密码


    登录到论坛后发布一个帖子,帖子中包含以下内容:

    <script>alert(’XSS’);</script>
    

    视频学习总结

    数据库评估软件

    BBQSql

    BBQSql是一个Python编写的盲注工具,当检测可以注入漏洞时会很有用,同时BBQSql是一个半自动工具,允许客户自定义参数。
    在应用层序中打开BBQSql按照要求输入1可以设置 HTTP参数,要设置URL输入3。也可以按照需求输入其他。

    DBPwAudit(数据库用户名密码枚举工具)

    使用参数:
    破解SQL数据库
    #./dbpwaudit -s IP master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)
    破解MYSQL数据库
    #./dbpwaudit.sh -s IP -d mysql(数据库名称) -D mysql(数据库类型) -U username(字典) -P password(字典)

    HexorBase 图形化的密码破解与连接工具,开源

    Jsql Injection

    JSQL是一款轻量级的安全测试工具,可以检测SQL注入漏洞,它跨平台(Windows、Linux、Mac OS X 、Solaris),开源且免费。将存在注入漏洞的URL贴进来即可进行响应漏洞利用,图形化界面亲民,使用效率不高。

    MDBTools

    包括
    MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具体环境具体使用。

    Oracle scanner

    oscanner是一个用java开发的Oracle评估工具。它是基于插件的结构,当前两个插件可以:

    -使得列举
    -口令测试
    -列举Oracle版本
    -列举帐号角色
    -列举帐号特权
    -列举帐号哈希
    -列举审计信息
    -列举口令策略
    -列举数据库链接

    SIDGusser

    同样是针对oracle的SID进行暴力枚举工具。SID为oracle实例名,oracle连接字符串,通过实例名+用户名+密码连接。

    SqlDICT:又一个用户名密码枚举工具,通过Wine运行。

    听你上次买的10g

    允许向oracle数据库注入命令。

    SQLsus

    SQLsus是一个开放源代码的MySql注入和人接管工具,SQLsus使用Perl编写,基于命令行界面。SQLsus可以获取数据库结构钢,注入自己的SQl语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。最好使用的亮点就是注射获取数据速度非常快,另一个最大的特点是自动搜索可写目录。
    生成配置文件:

    编辑配置文件:

    修改 our $url_start = "";写入地址。

    地洞并测试
    sqlsus test.conf
    查看全部数据库名字

    sqlsus> get databases
    [+] Geting databases names
    设定数据库

    sqlsus> set database
    database = "sql"
    sqlsus> set database mysql
    database = "mysql"
    sqlsus>
    获取表
    sqlsus> get tables

    sqlninja

    在sql注入方面一直尊sqlmap为神器,但sqlninja也有自己的特点。
    Sqlninja是一款perl编写的专门针对Microsoft Sql Server的sql注入工具。和市面上其他的诸如工具不同,sqlninja没有将精力用在跑数据库上,而是侧重获得一个shell。sqlninja优点:
    一个专门针对Microsoft Sql Server的sql注入工具。
    可以远程sql服务器的标志和特征(版本、用户执行的查询、用户特权、xp-cmdshell的可用性、身份验证模式等)
    “sa”口令的强力攻击
    如果找到口令后,九江特权提升到“sa”
    如果原始的xp-cmdshell被禁用后,就创建一个定制的xp-cmdshell。
    使用纯粹的ASSCII GET/POST请求来上载netcat.exe程序(以及任何可执行程序),因此不需要FTP连接。
    为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL,服务器TCP/UDP端口扫描。
    逃避技术,使注入代码模糊不清,混淆/绕过机遇期阿宁的IPS和应用层防火墙。
    采用“盲目执行”攻击模式,在其他模式失效时i,用于发布命令并执行诊断。
    在sqlninja生成的代码上,执行自动化URL编码,用户可惊喜的控制漏洞利用的字符串。
    得到权限sa,结合msf进一步对目标主机渗透。

    sqlninja参数:

    -m     指定攻击模式
        t/test    测试连接是否是注入点
        f/fingerprint    指纹识别,判断用户,数据库,xp_cmdshell是否能用
        b/bruteforce    暴力破解sa密码,-w指定字典,不适用字典sqlninja将会穷举。
    

    Sqlmap

    开源渗透测试工具,Python编写。自动化侦测实施Sql注入攻击及渗透数据库服务器,可以获取不同数据库的指纹信息,还可以提取数据。

     1、打开metasploitable2虚拟机,ifconfig 获取ip地址,在kali浏览器中输入 192.168.232.135/dvwa/login.php 进入,或者192.168.232.135 点击DVWA进入页面,输入用户名密码登录。
        进入后将DVWA  Security  调至 low。
    

    ![](http://images2015.cnblogs.com/blog/954133/201704/954133-20170402141237133-571971944.png)

     2、打开SQL Injection,在user ID分别输入1和1'查看区别,1'时出现报错,使用sqlmap命令检测漏洞。
    

    为防止再次跳转到login页面,赋给其一个cookie 使它有当前cookie权限。
    
    sqlmap -u "adress" --cookie='PHPSESSID=...;security=low'     (注意单双引号)
    

    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --current-db     //查看当前数据库
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --current-user   //查看当前user
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --dbs            //查看有哪些数据库
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --users          //查看有哪些用户
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --user --pass     //查看用户密码
    
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --privileges       //查看自己的权限
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --tables -D dvwa    //D指database,查询dvwa数据库中的表
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --columns -T users -D dvwa   //查看的数据库中userss表(-T指tables)的字段信息
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --dump -C user,password  -T users -D dvwa   //查看user和password字段
    sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --sql-shell              //得到sqlshell可直接编写SQL语句
    sql-shell> select load_file('/etc/passwd');
    

    Web应用代理

    Web应用代理工具分析数据包,修改数据包重放,暴力攻击在web安全测试中常用。可以用手机或者虚拟机连接应用代理,应用发送的数据包,都可以通过该工具重放。

    Burp Suite

    在8080端口上运行,可以截获并修改客户端到web应用程序的数据包。

    • 1、设置浏览器代理
    • 2、爬虫与扫描


    • 3、暴力破解表单账户密码

    • 4、Repeater该报重放模块

    在Proxy中找到刚刚的包(最新的)右键send to repeater。可以随意查看和修改,点击go查看。

    • 5、decoder模块;编码解码模块

    • 6、compare 模块;比较两个请求包
      列出两个包有什么不同

    • 7、extender 插件模块

    owaspZAP

    是一款网页应用程序漏洞综合渗透测试工具,包含拦截代理、自动处理、被动处理、暴力破解、端口扫描、蜘蛛搜索等功能。是会话类调试工具,不会对网站发送大量请求,对服务器影响较小。

    VEGA

    开源的web应用程序安全测试平台,Vega能帮助验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用java编写,有GUI,可以在多平台下运行。Vega类似于Paros Proxy, Fiddler, Skipfish and ZAproxy。

    Paros

    基于java代理程序,评估web应用程序漏洞,支持HTTP/HTTPS。包括SQL注入,跨站点脚本攻击、目录遍历等。

    Webscarad

    代理软件,包含HTTP代理、网络爬行,网络蜘蛛、会话ID分析、自动脚本接口、模糊测试工具、web格式编码/解码、web服务描述语言、soap解析器功能。基于GNU协议,java编写,是webgoat工具之一。

    FUZZ 模糊测试工具

    bed.pl

    纯文本协议fuzz工具,检查常见漏洞,缓冲区溢出、格式串漏洞、整数溢出等。

    bed -s FTP -t 192.168.232.135 -p 21 -o 5     //-s测试插件;-t目标IP;-p端口;-o timeout
    

    Fuzz_ipv6

    THC出品针对IPV6协议的模糊测试工具

    0hrwurm RTP的fuzz工具

    powerfuzzer 图形化的fuzz工具

    Wfuzz

    针对WEB应用的模糊测试工具,暴力破解web应用,支持对网站目录,登录信息,应用资源文件等暴力猜解,get及post参数猜解,sql注入,xss漏洞测试,依赖于字典。与burpsuite区别是,他更轻量级。

    wfuzz -c -z file,commom.txt --hc 404 -o html http://www.baidu.com/FUZZ 2>res.html   //将要拆解的文件用FUZZ代替
    wfuzz -c -z file,users.txt -z file,pass.txt --hc 404 http://www.site.com/log.asp?user=FUZZ&pass=FUZZ          //登录页面口令猜解,或略404页面
    wfuzz -c -cz range,1-10 --hc=BBB http://www.site.com/FUZZ{something}    //页面数目猜解
    

    xsser

    xsser -u "http://192.168.232.135/dvwa/vulnerabilities/xss_r/?name=" --cookie="PHPSESSID=268251cc1b75fe13ebc51cfff466389f;security=low" -v  //-v显示结果
    


    视频学习问题及解决

    Burp Suitepa爬虫及扫描的时候设置IP为127.0.0.1 端口号为8080 。proxy获取的包和输入的不一致,不能同步。解决:经过多次 forword drop 之后就对了。

    学习进度条

    时间 学习目标时间 实际学习时间
    第一周 12 16
    第二周 12 13
    第三周 12 12
    第四周 12 10
    第五周 12 16

    参考资料

  • 相关阅读:
    登录验证servlet实现
    IOS开发(68)之捕获点击划屏手势
    jquery实现漂浮在网页右侧的qq在线客服插件
    深切缅怀“5.12”特大地震遇难同胞
    PHP实现微信申请退款流程实例源码
    empty和isset的区别
    ThinkPHP中实现微信支付(jsapi支付)流程
    php中正则表达式详解
    PHP与RBAC设计思路讲解与源码
    一起谈.NET技术,VS2010实践RUP4+1架构模型 狼人:
  • 原文地址:https://www.cnblogs.com/zhaohui801/p/6657578.html
Copyright © 2020-2023  润新知