Web应用程序攻击

web攻击技术:SQL技术(脚本注入攻击)、XSS攻击(跨站脚本攻击)、上传漏洞(文件上传)

网站结构:登录页面 -- html;后台登录程序 -- Asp/php;数据库 -- musql/mssql/oracle


一、HTTP协议

HTTP协议的入口:URL 统一资源定位符 --> 网络地址

Windows主机不区分URL大小写,Unix/Linux区分。

请求头 --> GET  响应头 --> POST

HTTP数据包  -->  信息收集、重放攻击、参数猜解、数据过滤


二、SQL注入

1、SQL注入:值攻击者通过向网站提交精心构造的SQL查询语句,导致网站将本不应返回的数据信息输出泄露。

原因:网站未对提交的数据进行严格的过滤。

隐蔽性:SQL注入是通过HTTP协议传递的,从正常的www端口访问,防火墙一般不会报警。

2、获取网站管理员权限:① 利用SQL注入漏洞绕过身份验证机制;② 利用SQL注入楼栋号破解管理员身份。

① 利用SQL注入漏洞绕过身份验证机制

eg:万能密码 —— username=’ or 1=1;--

② 利用SQL注入楼漏洞破解管理员身份:

❀ 注入点发现

❀ 数据库类型判断

❀ 猜解表名、字段名

❀ 猜解用户名、密码

❀ 获得管理员页面,上传Asp木马

3、(1)注入点的发现:整形参数注入点、字符型参数注入点。

其他经常遇到的SQL注入方法:Cookie注入(在数据包中的注入位置)、POST注入(在数据包中的注入位置)、延时注入(利用数据库延时特性)、搜索注入(在页面中的注入位置)、Base64注入(注入要经过base64编码)

(2)数据库类型判断:Mysql、MSSQL、Oracle

① 利用数据库指纹:不同的字符串连接符、系统表/系统变量/函数名

eg:oracle支持“||”连接符,所以可以尝试“sel|| ect”,若不支持,就不是这种数据库

② 根据错误提示

通过构造语法错误的查询条件,使数据库查询出错并给出数据库类型的提示。eg:and username()>0

(3)获得表明和字段名

① 猜解法:利用大量已知表名和字段名尝试

② 利用SQL数据库自身的系统表数据(元数据)

每个数据库都有自身的系统表和系统变量:SCHEMATA表(所有数据库信息)、TABLES表(数据库中表的信息)、COLUMNS表(表中的列信息)

可以查数据库、数据表、字段 --> 应对:可通过配置文件使用户对Schema数据库访问的结果不显示。

(4)猜列属性:有多少列、哪一列是字符串类型

(5)破解记录内容:确定记录条数、确定记录字段长度、ASCII字符猜解十二分法。

比如-a-,当出现错误是时,说明上一个数字n就是当前查询了多少列。

-c-中,至多8次可以猜出一个字符。  意思是第一个字符的ASCII码与后面的n进行对比

改为 substring(字段,2,1)是取第二个字符,直到用户名取完。

4、延时注入

基于时间差异的注入技术,通过构造查询语句造成数据库的执行时间差异来判断查询语句猜测结果的正确性。

猜对了就 sleep。

5、避开网站对输入的过滤

6、SQL注入攻击分防范

① 检查数据类型;(解决数字型注入)② 关键字过滤;(解决字符型注入)③ 口令加密,可采用MD5+KEY的方式


三、文件上传漏洞

1、上传漏洞可以使普通用户向服务器上传脚本文件,并通过此脚本文件获得执行服务器端命令的能力。

web脚本语言;Flash策略文件;病毒木马文件;钓鱼图片或者包含了脚本的图片。

检测文件类型的方法:① 客户端检测;② 服务器端检测

2、客户端检测

web攻击中,用户是不可信的,将所有数据的过滤和检测放在客户端是不安全的。

首先判断是否是客户端检测,然后想办法绕过。

判断时客户端检测:打开http反向代理工具,点击一个不符合的类型文件上传,若再点击上传之前就弹出警告,说明是客户端javascript检测。

绕过方法:用firebug之类的插件把它禁掉;通过Burp之类的代理工具绕过提交。

3、服务端检测

(1)通过后缀名检测:黑名单;白名单

绕过黑名单的方法:

(2)通过文件格式检测

有些后台或浏览器通过读取文件头的方式判断上传文件的类型。

绕过方法:保留文件头,在数据部分插入脚本。

但仍需将上传的jpg改为脚本执行。

(3)服务器端MIME验证

通过上传文件的数据包中的MIME头中标识的文件类型进行验证。

这会忽略上传文件是否真的与文件类型保持一致。

(4)服务器目录验证

上传文件时,程序通常允许用户将文件放到指定的目录中。有些程序在目录不存在时,会先创建目录,再写入文件。

4、上传漏洞的防御

① 文件目录设置为不可执行

② 判断文件类型:前端+后端、MIME type+后缀+白名单

③ 随机数改写文件名和文件路径

④ 单独设置文件服务器的域名


四、跨站脚本(CSS/XSS)

跨站脚本是指在客户端浏览的Web页面中插入具有恶意目的的脚本代码,使用户在浏览网页的过程中由浏览器执行脚本实现相应的恶意功能。

1、XSS分类:反射型XSS、存储型XSS、DOM型XSS

反射型XSS、存储型XSS  -->  脚本是由服务器返回,浏览器执行。

DOM型XSS  -->  脚本由客户端产生,浏览器执行。

(1)反射型XSS

(2)存储型XSS

(3)DOM型XSS

2、跨站脚本攻击的危害

① 获取其他用户Cookie中的敏感数据;② 屏蔽网页特定信息,伪造页面信息; ③ 拒绝服务攻击; ④ 与其他漏洞结合,修改系统设置,查看系统文件,执行系统口令

3、发现网站XSS

① 手工方法:针对所有程序的所有输入,检测其是否会参与到浏览器的输出。

4、XSS的防范

① 服务器端:黑表过滤、白表过滤

② 用户端:提高访问链接的警惕性;禁止浏览器运行JavaScript和ActiveX代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 攻击活动 SQL(结构化查询语言)注入 概述 一个SQL注入攻击包含了从应用客户端的输入数据中注入或嵌入的方式,一...
    夏夜星语阅读 890评论 0 0
  • 漏洞挖掘与利用 测试环境的搭建 引言 为什么要搭建本地测试环境?我想下面的东西能够回答你的疑惑。 第二百八十五条 ...
    作业没写完阅读 3,160评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,074评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 在很久以前 我是一串数字 它们是319812574 3代表了我第一眼看到的空间 1是3之前的1的效用,在这里托一下...
    江柚河阅读 154评论 0 2