欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《Web安全深度剖析》.docx

    • 资源ID:25413163       资源大小:33.63KB        全文页数:34页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《Web安全深度剖析》.docx

    1、Web安全深度剖析Web安全深度剖析Web安全深度剖析 简介、协议、抓包不再赘述略 信息探测与收集 Google Hack (baidu 等爬虫) 搜索子域名,示例:【site:baidu.】 搜集 Web 信息 Google常用语法 【site 】:指定域名 【nte_t 】:正文中存在关键字的网页 【intitle 】:标题中存在关键字的网页 【inurl 】:url中存在关键字的网页 【info 】:一些基本信息 【filetype 】:搜索指定文件类型 案例一:【intitle:管理登录 filetype:php】 查询网页标题中含有【管理登录】且为【php 类型】的网站(后台或指定类

    2、型的目标扫描) 案例二:【inte_t:Power by Discuz】 Discuz搭建的论坛正文里基本都有个 Power by Discuz(熟悉 CMS 特征),配合最新的Dis_uz漏洞危害严重。 google的局限性,robots.t_t,所以有时候需要自己写爬虫来获取某些信息 防御: Nmap (扫描) 简介:window图形界面的:Zenmap;命令行和 kali下的差不多,略 参数 案例:-Pn:将所有主机视为在线;跳过主机发现 Nmap 脚本引擎 .nse脚本 ,Script目录下,-script=脚本名称 官方脚本文档:nmap.org/nsedoc 案例 案例一:扫描 W

    3、eb 敏感目录【-enum.nse】 -p 80 -script=-enum.nse 案例二:扫描 SqlInjection【-sql-injection.nse】 -p 80 -script=-sql-injection.nse 案例三:使用所有的脚本进行扫描【-script all】,最好保存为文档-oN 案例四:使用通配符选择多个脚本扫描 nmap -script ;-_; 127.0.0.1,注意脚本名称用双引号避免 shell误解 还可以漏洞检测和密码暴力破解,更多参考 s:/nmap.org/book/nse-usage.,包括基本用法和脚本分类等 DirBuster (目录、隐藏

    4、文件扫描) 简介 kali自带 概览: 使用案例以及基本步骤: 爆破目录,也有爬虫功能 类似功能的工具还有 【Scan 】【御剑后台扫描珍藏版】等 需要 递归式的扫描, 拿着扫描结果进一步地扫描 针对性扫描 指纹识别 简介:最重要的就是特征库 工具 Nmap: 【nmap -O】:操作系统指纹 【Nmap -A/sV】:端口服务版本等详细信息 【御剑指纹识别】:可快速识别国内的一些主流 CMS(仅限国内) 【AppPrint】:Web容器指纹识别工具,可针对单个 IP、域名或 IP段进行 Tomcat、WebLogic、WebSphere、IIS 等 Web 容器识别 kali自带的【what

    5、web】【rint】等 Web 服务器指纹识别工具等 在线指纹识别的网站:【云悉、shodan】等 浏览器插件【Wapplyzer】等 经验: 指纹伪造(少见) 子域名爆破 lijiejie、layer挖掘机等 漏洞扫描 概述: 概览 Burp Suite 各个模块: 【Pro_y】:代理模块,数据包拦截 【Target】:站点地图,Filter 过滤,Scope目标范围,Issue definitions 问题的定义 基本使用方法: 【Spider】:爬虫,默认被动进行漏洞扫描,高版本没有。pro_y抓包 send to spider 基本使用方法: 【Scanner】:扫描漏洞 基本使用方

    6、法: 【intruder】:入侵模块,自动化攻击、爆破等。Attack type,程序变量,字典设置等。 基本使用方法: 【Repeater】:重放模块,拦截到的包 send to repeater,修改后“Go”发送请求,Response区域显示响应 【Decoder】:解码模块 基本使用方法:解码、编码、hash、智能解码 【parer】:比较模块 基本使用方法: 其他小问题: 中文乱码:User Options调成中文字体即可 恢复默认选项 使用插件:独立运行或者 BP 中添加或安装 AWVS (Acui_) 自动化 Web漏洞扫描工具 10 以及以下为客户端,10 以上为 web AW

    7、VS超详细中文手册:s:/blog.csdn./madao1o_o/article/details/88548681】 基本使用方法(版本不同差别不大): 基本的一次扫描(web scanner) Web 端扫描服务 创建扫描 AWVS小工具 AppScan 简介 基本使用方法 界面: AppScan 的全面扫描:探索和测试 示例: 处理结果 AppScan 辅助工具:可以在菜单栏工具“”PowerTool“中找到 其他 不要过分依赖工具,重在积累经验 漏洞原理篇 SQL 注入漏洞 SQLi 原理 用户的输入数据被 SQL解释器执行 形式:【闭合+攻击者的 SQL语句+注释】 经典实例:【 o

    8、r 1=1 -】 需要推测后端程序源码的闭合方式,使 SQL语句提前闭合,并能执行自己的 SQL语句,注释掉或闭合后面的多余代码 注入漏洞分类 概览 数字型注入 判断 【】引号处报错 【1=1】正常【1=2】错误,页面存在布尔状态 常见于弱类型语言,自动推导变量类型 字符型注入 关键:如何闭合 SQL语句,注释多余的代码 判断 常见的闭合方式(需要推测后端代码):【】【;】【)】 常见的注释方式(数据库或脚本语言决定):【- 】【#】 示例: select查询:【 and 1=1 - 】 update更新(例如 SQL Server 重置密码等):【+(select version)+】 in

    9、sert同 update SQL 注入的其他分类 按出现的位置 Cookie、POST等 按反馈形式 盲注(根据页面布尔状态)、延时(根据延时)等 到了数据库都可被归纳为【数字型】和【字符型】 常见数据库注入 概览: SQL Server 利用 错误信息提取信息 对于用户不应该像对开发者一样【反馈详细的报错信息】 枚举当前 表及列:【 【group by 】【having 1=1 - 】 利用数据类型错误 提取数据: 【and 1 ;gt; (select top 1 username from users ) 】 【and 1 ;gt; (select top 1 username from

    10、 users where username not in(root) ) 】 【and 1 = convert(int , (select top 1 username from users) )】 【and 1 = convert(int ,(select stuff(select ,+users.username,|+users.password from users for _ml path(),1,1,)】 获取 元数据 元数据库【INFORMATION_SCHEMA】 【INFORMATION_SCHEMA.TABLES 】视图:表 【INFORMATION_SCHEMA.COLUM

    11、NS】视图:字段 取得当前数据库表 【select table_name from information_schema.tables 】 取得 Student表字段 【select column_name from information_schema.columns where table_name=Student 】 常见视图 Order by 子句(通用) 【order by N】,按第 N 列排序,当第 N 列不存在时报错,可判断列数 UNION 查询(通用) 基本规则: 列数相同 数据类型兼容 探测字段(列)数 :【union select null,null,null】 三列:【

    12、union select null,_,null from sysobject where _type=U 】 示例: 无辜的 (系统)函数 系统函数和常用函数 危险的 存储过程 常见的危险存储过程 角色与权限 动态执行 e_ec,十六进制绕过防火墙过滤 Mysql( ( ) 基本思路同 SQL Server,语法存在差异。如:SQL Server:version;mysql:version。 Mysql中的 注释 【#】【- 】【/_/】【/_! _/】 获取 元数据 【INFORMATION_SCHEMA】信息数据库 查询数据库名称 【select SCHEMA_NAME from INF

    13、ORMATION_SCHEMA.SCHEMATA 】 查询当前数据库表 【select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA=(select DATABASE) 】 查询指定表的所有字段 【select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME =Student 】 案例:【limit 0,1】【linit 1】 UNION 查询 差别:【Oracle】需要加【表名】,【SQL Server】和【Oracle】数据类型不确定时使用【

    14、null】 Mysql 函数利用 常用函数 【 load_file 】:读取文件 十六进制绕过、char强制类型转换绕过、he_ 解决乱码问题 【 into outfile 】:写文件 【 连接字符串 】: 【 concat 】: 【concat_ws】 【 load_file 】:读取文件 权限 Mysql 显错式注入 【update_ml 】【e_tractvalue 】【floor 】 【update_ml 】 【and update_ml(1,(concat(0_7c,(select version),1)】 【e_tractvalue 】 【and e_tractvalue(1,co

    15、ncat(0_7c,(select user)】 【floor 】 【union select _from(select count(_),concat(floor(rand(0)_2,(select user)a from information_schema.tables group by a)b】 宽字节注入 编码不统一导致的,gbk 编码为双字节编码 8140-FEFE 【】是【5c】【%df5c】就构成了一个汉字从而绕过了转义,df可以换为 81-FE之间的,让 magic_es_gpc的转义反斜杠参与构成了一个 GBK 编码的汉字,从而使后面的单引号或双引号之类的注入生效,s:/m

    16、ubu./doc/3ikGy9mE_Wr Mysql 长字符截断 配置问题:mysql的设置中【sql_mode:default】 示例: 延时注入 基于时间差异的盲注 【and sleep(3)】 思路:【length】【he_(mid(target,L,1)】,通过延时判断假设的表达式的真假,来一点点地猜解 Oracle 获取 元数据 【user_tablespaces】视图:查看表空间 【select tablespace_name from user_tablespaces】 【user_tables】视图:查看当前用户的所有表 【select table_name from user

    17、_tables where rownum = 1】 【user_tab_columns】视图:查看当前用户的所有列,例如查看 user表的所有列 【select column_name from user_tab_columns where table_name= users】 【all_users】视图:查看 Oracle数据库的所有用户 【select username from all_users】 【user_objects】视图:查看当前用户的所有对象(表名称、约束、索引) 【select object_name from user_objects】 UNION 查询 【order

    18、by 】【union select null,null,null from dual 】 获取敏感信息 获取数据库表以及其内容 Oracle中 包的概念 简介 页面不能直接回显,反弹数据 写文件 读文件 执行系统命令 第一步:创建 Java 执行代码包 第二步:赋予用户 Java 执行权限 第三步:创建函数,调用 Java 代码 第四步:执行命令 常见包 注入工具 概览 SQLMap 简介 基本使用 【-u ;URL;】:判断是否存在注入点 【-u ;URL; -dbs 】:获取数据库 【-u ;URL; -current-db】:当前数据库(假设为 cdb) 【-u ;URL; -D cdb

    19、 -tables】:列出 cdb数据库的所有表 【-u ;URL; -D cdb -T table1 -columns】:列出 cdb数据库的 table1表中的所有字段 【-u ;URL; -D ;cdb; -T ;table1; -C ;user,passwd,emails; -dump 】:获得指定字在 段的内容,除了回显,还会保存在 SQLMap/output/ 目录下,名为 ldquo; 表名.cvs” 常用参数 测试注入点权限:【-privileges】 【sqlmap -u URL -privileges】/测试所有用户的权限 【sqlmap -u URL -privileges

    20、 -U sa】/测试 sa用户权限 执行 Shell命令:【-os-cmd】 【sqlmap -u URL -os-cmd=; user;】/执行 user命令 【sqlmap -u URL -os-shell 】/系统交互的 shell 执行 SQL命令:【-sql-shell 】 【sqlmap -u URL -sql-shell 】/返回 SQL交互的 shell,可以执行 SQL语句 【sqlmap -u URL -sql-query=;sql;】 POST提交方式:【-data ;POST 参数;】 显示信息的详细(程度)等级:【-v 0-6】 【sqlmap -u URL -dbs

    21、 -v 1】 -v 参数包含以下 7 个等级 【0】:只显示 python的回溯、错误和关键消息 【1】:显示信息和警告消息 【2】:显示调试消息 【3】:有效载荷注入 【4】:显示 请求 【5】:显示 响应头 【6】:显示 响应页面的内容 注入 请求:【-r head.t_t】 【sqlmap -r head.t_t -dbs】/head.t_t内容为 请求,例如 BP的抓包 直接连接到数据库 【sqlmap -d ;mysql:/admin:admin192.168.1.8:3306/testdb; -dbs】 注入等级:【-level】 【sqlmap -u URL -level 3】

    22、【1】:默认 【2】:cookie会被测试 【3】:user-agent/referer 会被测试 【5】:包含的 payload 最多,会自动破解出 cookie、_FF等头部注入,但速度也会很慢。 【-p】指定想要测试的参数:-p ;id,user-agent; 【-skip=;】:level很大但有个别参数不想测试的时候使用-skip来跳过:-skip ;user-agent.referer; 将注入语句插入到指定位置:【_】 【sqlmap -u ;id/2_.; -dbs】 使用 SQLMap 插件:【-ter】/插件都保存在 sqlmap/ter 下,这些插件通常用来绕过 WAF(

    23、web应用防火墙) 【sqlmap -u URL -ter ;space2morehash.py;】 其他常用参数 参考:s:/github./sqlmapproject/sqlmap/wiki/Usage 常用参数以及说明 【】 【】 【】 【sqlmap -u URL -data ;POST参数;】 Pangolin 穿山甲,略 Havij 自动化 sql注入软件,略 止 防止 SQL 注入 概览: 数据类型判断、特殊字符转义 严格的数据类型 数字型注入:Java、C#等强类型语言几乎可以忽略;PHP、ASP 需要 is_numeric、ctype_digit等函数判断数据类型 特殊字符转

    24、义 还有黑白名单策略,对特殊字符整理成黑名单,统一进行转义等过滤操作。 二次注入攻击:利用第一次过滤后的正常输入来闭合第二次的 sql语句 使用预编译语句 JAVA:prepareStatement、setter,动态拼接 sql语句就没用了 框架技术 对象关系映射 ORM注入、HQL注入, 动态拼接就可能会存在注入 改进代码:【?】【setParameter(0,id)】;【:id】【setParameter(;id;,id)】 存储过程 e_ec、动态拼接等依然会造成 SQL注入。 小结 先工具,后手工辅助。代码规范形成模板。 上传漏洞 概述 Web 应用允许上传文件,没有做严格验证或过滤

    25、 解析漏洞上传漏洞常与 Web 容器的解析漏洞配合使用。常见的 Web 容器:IIS、Apache、Ngin_、Tomcat等 IIS 解析漏洞 IIS 6.0 【.asa 】【.asp 】文件夹下的任意文件都会当作 asp 文件解析 【.asp;1.jpg 】文件也会以 ASP脚本执行 WebDav 开启后,如果支持 PUT、Move、Copy、Delete等方法 测试步骤如下: 【OPTIONS】探测 方法 【PUT】上传脚本文件(一句话木马等) 【Move】或【Copy】改名,至此,获取 webshell 【DELETE】还可以删除服务器上的任意文件 WebDav漏洞检测工具:【IIS

    26、Write】 Apache 解析漏洞 扩展名从后向前知道遇到认识的解析,【/conf/mime.type】下记录有 Apache 认识的扩展名 可以绕过黑名单【1.php.rar】 PHP CGI 解析漏洞 【/1.jpg/1.php】:1.jpg被当作 php脚本来解析,通用:【/1.jpg/_.php】 PHP配置文件中的 【cgi.fi : _pathinfo】选项默认开启,造成 PHP向前的递归解析 常见于 Ngin_+PHP 绕过上传漏洞 概述 客户端。服务端检测,菜刀(蚁剑)和一句话木马。 中国菜刀、Edjpg 客户端检测 概述 JS客户端验证,约等于无,可以通过各种方法轻易绕过。

    27、上传文件的处理:php脚本控制,将临时目录中的上传文件,重命名,放到指定目录下,如 move_uploaded等处理。 绕过方法 使用 FireBug,已经淘汰,使用 Firefo_ Developer Editor 即可 【F12】打开开发者工具:操作方法相同。在保证身份认证通过的情况下,对请求页面做出自己的修改来绕过客户端检测 中间人 BP 先正常通过客户端验证,再 BP截获客户端请求进行非法修改,就绕过了客户端验证。 服务器端检测 概述 黑白名单、文件类型、文件重命名。注意解析漏洞。 黑白名单策略 黑名单过滤 绕过方法 白名单过滤 绕过方法 MIME 验证 概述 MIME(多用途互联网邮

    28、件扩展类型),指定某种扩展名文件的打开方式 示例 简单的一个 jpg 类型判断,md5 文件名重命名,再 move_uploaded_file将上传文件移到指定目录 绕过:BP拦截,修改 Content-Type也就是 MIME类型即可 目录验证 上传文件的保存路径在前端暴露,参数可控,利用解析漏洞,将文件夹名称改为.asp,则 IIS 6.0其下的所有文件都会被解析为 asp 文件,包括木马。 示例: 截断上传攻击 【%00】:00截断,ASP、PHP、JSP等均存在,以 asp 为例 示例: 存在 00 截断漏洞的典型的 ASP代码 BP拦截请求 BP 修改文件名为 1.asp 空格 _.

    29、jpg,HE_ 模式下将空格 20 改为 00,即可截断。绕过了文件类型验证,最后得到的还是 asp 脚本文件 文本编辑器上传漏洞 概述 富文本编辑器:品类繁多,功能丰富,漏洞危害范围大。 敏感信息暴露 富文本编辑器的目录往往存在一些敏感文件,没有处理干净就会被攻击者获取敏感信息,详情可查看各自的官网手册等 黑名单策略错误 过滤不干净 任意文件上传漏洞 示例: upload.php,只看第一块验证阶段即可 config.php 中记录的格式配置为:发现没有 Media,这意味着可以上传任意类型文件,(绕过了 Type检测,count(.);gt;0 为假,故可以上传任意类型文件) 利用 其他漏洞:可查阅对应的漏洞库 修复上传漏洞 【目录过滤】【文件重命名】


    注意事项

    本文(《Web安全深度剖析》.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开