web安全概述-SQL注入总结

Web 安全概要

  • 第三方内容:广告插件·mochup
  • web前端框架:jQuery/Bootstrap/HTML5
  • Web应用:BBS/CMS/BLOG
  • Web开发框架:Django/Rails/ThinkPHP
  • Web服务器语言:PHP/JSP/.NET
  • Web容器:Apache/IIS/Nginx/Tomcat
  • 存储:数据库存储/内存存储/文件存储
  • 操作系统:Linux/Windows

什么是注入漏洞

注入漏洞攻击的本质,web应用程序没有对过滤用户输入*,直接把用户输入的恶意数据当代码执行。

两个条件

用户能够控制输入
原本程序要执行的代码,拼接了用户输入的数据
复制代码

注入类型

SQL注入: 攻击者把sql代码命令插入到web表单的输入域或页面请求的查询字符串,欺骗数据库服务器执行恶意的sql命令
命令注入:后端为过滤掉恶意数据,代码当系统命令执行。
代码注入:一般出现在不安全使用某些函数
        文件包含
        反序列化漏洞
LAAP注入:用于访问网络中目录服务,常用在Active Directory
XML注入:
        XXE注入:引用外部实体时,通过构造恶意代码内容,导致读取任意文件执行系统命令,探测内网端口,攻击内网网站等危害。
        xpath注入:与sql注入类似,xpath解析本身对url,表单中提交的代码未作严格限制,导致恶意代码可以直接解析
        XQuery注入
JSON注入:轻量级的数据交换格式,主要利用特殊字符注入JSON中,造成解析失败。
jsonp注入:回调函数未作严格的检测和过滤
复制代码

SQL注入过程

SQL注入危害

绕过登录验证:使用万能密码登录网站后台
获取敏感数据:获取网站管理员账号 密码等
文件操作系统:列目录,获取,写入文件等
注册表操作: 读写删
执行系统命令:远程执行系统命令
复制代码

SQL 注入分类

数字型注入:输入的参数为整数 如ID age page 
字符型注入:输入的参数为字符型?字符型注入一般要使用单引号来闭合
搜索型注入:指对数据进行搜索时没过滤搜索参数
复制代码

SQL注入原因

1.不正确的处理转义字符(宽字节注入)
2.不正确的处理类型(报错泄露信息)
3.不正确的处理联合查询
4.不正确的处理错误信息(报错泄露信息)
5.不正确的处理多次提交(二次注入)
6.后台存在问题:无过滤或者编码用户数据  数据库可以拼接用户传递的恶意代码
7.错误处理不当
8不安全的数据库配置:默认账号     权限 
复制代码

SQL注入过程

1.判断是否存在注入点
2.判断字段长度
3.判断字段回显位置
4.判断数据库信息
5.查找数据库名
6.查找数据库表
7.查找数据库中所有字段
8.猜解账号密码
9.登录管理员后台
复制代码

SQL注入可以做什么

1.读取修改数据库中的内容  
2.脱库   
3读取创建文件  
4函数备份写入webshell,读取数据库文件 
5绕过密码验证登录后台  
6通过存储过程执行系统命令和操作注册表
复制代码

常见url注入点(hack)

NewsInfo.asp?id=
otherinfo.asp?id=
info.asp?id=
news_show.asp?id=
showhf.asp?id=
detailshow.asp?ID=
CompHonorBig.asp?id=
EnCompHonorBig.asp?id=
Google dorks sql injection:
NewsInfo.asp?id=
Show.asp?Id=
intitle:山西学校 inurl:asp?=
inurl: (asp?=10) inurl: (php?=10)
inurl:Article_Print.asp?
inurl:ManageLogin.asp
inurl:Offer.php?idf=
inurl:Opinions.php?id=
inurlage.php?id=
inurlop.php?id=
inurlost.php?id=
inurlrod_info.php?id=
inurlroduct-item.php?id=
inurlroduct.php?id=
inurlroduct_ranges_view.php?ID=
inurlroductdetail.php?id=
inurlroductinfo.php?id=
inurlroduit.php?id=
inurl:Profile_view.php?id=
inurl:Publications.php?id=
inurl:Stray-Questions-View.php?num=
inurl:aboutbook.php?id=
inurl:ages.php?id=
inurl:announce.php?id=
inurl:art.php?idm=
inurl:article.php?ID=
inurl:articleshow.asp?articleid=10
inurl:artikelinfo.php?id=
inurl:asp
inurl:asp?id=
inurl:avd_start.php?avd=
inurl:band_info.php?id=
inurl:buy.php?category=
inurl:category.php?id=
inurl:channel_id=
inurl:chappies.php?id=
inurl:clanek.php4?id=
inurl:clubpage.php?id=
inurl:collectionitem.php?id=
inurl:communique_detail.php?id=
inurl:curriculum.php?id=
inurl:declaration_more.php?decl_id=
inurl:detail.php?ID=
inurl:download.php?id=
inurl:downloads_info.php?id=
inurl:event.php?id=
inurl:faq2.php?id=
inurl:fellows.php?id=
inurl:fiche_spectacle.php?id=
inurl:forum_bds.php?num=
inurl:galeri_info.php?l=
inurl:gallery.php?id=
inurl:game.php?id=
inurl:games.php?id=
inurl:historialeer.php?num=
inurl:hosting_info.php?id=
inurl:humor.php?id=
inurl:index.php?=
inurl:index.php?id=
inurl:index2.php?option=
inurl:iniziativa.php?in=
inurl:item_id=
inurl:kategorie.php4?id=
inurl:labels.php?id=
inurl:loadpsb.php?id=
inurl:look.php?ID=
inurl:main.php?id=
inurl:material.php?id=
inurl:memberInfo.php?id=
inurl:news-full.php?id=
inurl:news.php?id=
inurl:newsDetail.php?id=
inurl:news_Article.asp?Class_ID=
inurl:news_display.php?getid=
inurl:news_view.php?id=
inurl:newscat.php?id=
inurl:newsid=
inurl:newsitem.php?num=
inurl:newsone.php?id=
inurl:newsticker_info.php?idn=
inurl:ray.php?id=
inurl:read.php?id=
inurl:readnews.php?id=
inurl:reagir.php?num=
inurl:releases.php?id=
inurl:review.php?id=
inurl:rub.php?idr=
inurl:rubp.php?idr=
inurl:rubrika.php?idr=
inurl:section.php?id=
inurl:select_biblio.php?id=
inurl:sem.php3?id=
inurl:shop.php?do=part&id=
inurl:shop_category.php?id=
inurl:shopping.php?id=
inurl:show.php?id=
inurl:show_an.php?id=
inurl:showimg.php?id=
inurl:shredder-categories.php?id=
inurl:spr.php?id=
inurl:staff_id=
inurl:story.php?id=
inurl:sw_comment.php?id=
inurl:tekst.php?idt=
inurl:theme.php?id=
inurl:title.php?id=
inurl:top10.php?cat=
inurl:tradeCategory.php?id=
inurl:trainers.php?id=
inurl:transcript.php?id=
inurl:view.php?id=
inurl:view_faq.php?id=
inurl:view_product.php?id=
inurl:viewapp.php?id=
inurl:viewphoto.php?id=
inurl:viewshowdetail.php?id=
inurl:website.php?id=
inurlage.php?file=
inurlageid=
inurlages.php?id=
inurlarticipant.php?id=
inurlerson.php?id=
inurllay_old.php?id=
inurlreview.php?id=
inurlrod_detail.php?id=
inurlroduct-item.php?id=
inurlroductinfo.php?id=
inurl:news_Article.asp?Class_ID=
showproduct.asp?id=
showproduct.asp?id=99

隐秘注入点

1. 伪静态
2. Cookie
3. key值注入
4. Limit OrderBy注入
5. Json格式注入
6. 二次注入
7. 编码加密输入点
8.referer注入
9.UA注入
10.XFF头注入
11.GBK绕过(%df%27)
复制代码

防御sql注入

1.UniOn SLeCT(大小写) /*uniOn*/%09/*sElecT*/(注释符)Unio%n Selec%t  

2.addslashes()  
addslashes(\$query="SELECT * FROM users WHERE id=\$id AND user='\$username'");  
sql语句就是\\"SELECT * FROM users WHERE id='\$id' AND user='\$username'\\"

3.hemlspecialchars() (默认ent_compat) + ent_quotes->  
\$quert="select * from users where id='\$id" and user='\$username'";  
把 < 和 > 转换为实体常用于防止浏览器将其用作 HTML 元素。  

4.参数化查询->PDO模块  

5.对于数字型可以用intval()函数转换  

6.对于字符型用1-4方法以及mysql_escape_string()函数转义特殊字符,关闭magic_quoes_gpc配置  
复制代码

sql手工注入命令

1.order by N  超出字段数会报错 

2.union select 1,2,3......联合查询 用来判断显位以及猜解列数(结合系统函数来爆数据库信息)  
(1) unio select schema_name from information_schema.schemata limit 1,2查看所有数据库  

(2) information_schema.tables查看表名  

(3) load_file(file_name):读取文件并将文件内容按照字符串格式返回  
前提条件:  
                    1.文件位置必须在服务器上,拥有文件路径以及file特权  
                    2.文件必须可读取,文件容量必须小于max_allowed_paket字节  
                    3.文件必须存在  
3.exists(select...)  函数来猜解表名   
4.OR 1=1   OR 1=2   AND 1=1  AND 1=2  
复制代码

SQL注入漏洞方式

1.识别数据库
2盲跟踪 (不同数据库sql语句的差异如@@version 和version() web应用技术)
3非忙跟踪(报错 直接查询)

SQL盲注分类

布尔盲注:布尔值为真时页面返回正常,布尔值为假页面不返回数据
时间盲注:延时为0页面返回正常,大于设定时间页面返回(sleep/benchmark()函数)
报错盲注:利用页面报错信息(floor  EXtractvalue  Updatexml EXP )
复制代码

转载于:https://juejin.im/post/5c88c0eef265da2dae5161cc

你可能感兴趣的:(web安全,数据库,json)