首页 >数据库 >SQL > 正文

SQL注入攻击的原理

原创2020-02-13 17:13:3305132

sql注入攻击的原理

恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服务端执行。

SQL注入攻击分类

(1)注入点的不同分类

数字类型的注入字符串类型的注入

(2)提交方式的不同分类

GET注入POST注入COOKIE注入HTTP注入

(3)获取信息的方式不同分类

基于布尔的盲注基于时间的盲注基于报错的注入

SQL注入攻击案例:

1、查看文章的注入案例:

查看某篇文章的url参数为:?id=1

则通过注入命令:?id=1 or 1=1,则可以列出整个数据表里面的所有文章。

如果查看用户是通过user_id来访问,如:?uid=1

则通过注入命令:?id=1 or 1=1, 则可以把整个用户表的记录全部显示出来

SQL命令如下:

通过?id=1的SQL命令为:select * from article where id=1,此语句查询到1条结构

通过?id=1 and 1=1的SQL命令为:select * from article where id=1 or 1=1,此语句查询到整个表的记录

2、用户登录的注入案例:

登录表单有user_name字段,查询语句为:select * from users where nickname='{user_name}'

则可以在user_name文本框填入:(' or 1='1),这样可以构造出注入的SQL命令:select * from users where user_name='' or 1='1',这样很容易就进入系统了。

3、SQL注入猜表:

在登录页面的用户名字段填入:(' or 1=(select count(0) from t_porg_document) or 1='1),可以构造出注入的SQL命令:select * from users where user_name='' or 1=(select count(0) from recharge) or 1='1'

这样就可以猜测是否recharge表存在.存在则语句正常执行,否则就报错了。

猜中表名后,就可以对数据表进行增删改查的操作,如:

在登录页面的用户名字段填入:('; delete from users),可以构造出危险的SQL命令:select * from users where user_name=''; delete from users;

通过加分号,可以构造出任意增删改查sql语句,整个数据库就被攻击者随意控制了。

PHP中文网,有大量免费的SQL教程,欢迎大家学习!

以上就是SQL注入攻击的原理的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:sql 注入攻击 原理
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 为了防止SQL,PHP自带一个功能可以对输字符串进行处,可以在较底层对输进行安全上初步处,也即Magic Quotes。(php.ini magic_quotes_gpc)。
    能够有效应对SQL方法是:PreparedStatement(预编译语句集)。预编译语句集内置了处SQL能力,我们只需要使用它setxxx方法传值即可。
    XSS是:者向有XSS漏洞网站中输恶意HTML代码,当其它用户浏览该网站时候,该段HTML代码会自动执行,从而达到,如盗取用户Cookie、破坏页面结构、重定向到其它网站等
    本篇文章将向你介绍sql基本,及其危害!感兴趣小伙伴一起来看看吧!我SQL语句这么简单,不可能被?花5分钟看完这个完整例子,从今往后应该再也不敢有以上侥幸心了!
    常见数据库包括弱口令、SQL、提升权限、窃取备份等。对数据库日志进行分析,可以发现行为,进一步还场景及追溯源。
    sql是指用户可以提交一段数据库查询代码,根据程序返回结果,获得某些需要得知数据。sql是黑客对数据库进行常用手段之一,我们可以通过数据库安全防护技术实现有效防护。
    Sql是指web应用程序对用户输数据合法性没有判断或过滤不严,者可以在web应用程序中事先定义好查询语句结尾上添加额外SQL语句,在管员不知情情况下实现非法操作,从而进一步得到相应数据信息
    win10册表恢复:在360安全卫士进“电脑清”选项,然后点“恢复区”,进恢复界面后点导航栏中册表恢复”,点要还册表后“还”按钮即可恢复册表。
    PHP MySQL预处语句作用是防止MySQL,预处语句用于执行多个相同SQL语句,并且执行效率更高;预处语句工作是创建SQL语句模板并发送到数据库,其预留值使用参数“?”标记。
    背景 之前出去面试时候, 经常会被问到一些安全方面问题。 安全涉及领域很大, 我也仅仅是了解一些皮毛, 每次面试前都要找资料复习, 很麻烦。
    本文来自web服务器安全栏目,为大家实战演示了一次存储型XSS防,感兴趣同学可以自己动手尝试。
    SQL防御方法有:1、PreparedStatement;2、使用正则表达式过滤传参数;3、字符串过滤。其中,采用预编译语句集是简单又有效方法,因为它内置了处SQL能力。
    0x02日志分析技巧:确定时间范围,以此为线索,查找这个时间范围内可疑日志,进一步排查,最终确定者,还过程。
    本文主要讲解依赖及使用方式,对于初学PHP小伙伴会有帮助,推荐大家学习。
    自己制作小程序是能,但是销也是有条件,有流程,其销方法:首先登录小程序后台;然后选择【设置】 ;接着查找始ID点销账号即可。
    win10销管员账号方法是:1、首先进【控制面板】,接着点【用户账号】;2、接着点【管其他账号】,点【管员】;3、然后点【更改密码】,将新密码设置为空即可完成销。
    销步骤:1、进微信公众平台官网并登录小程序,点首页中“设置”;2、在弹窗中,点“基本设置”;3、在账号信息始id后点“账号销”,点“同意并下一步”;4、扫码验证,等待自助走完销流程即可
    本文由网站安全教程栏目推荐,文中为大家介绍了关于PDO以及正确使用方法,希望可以帮助到大家。
    linux运维工程师必须掌握技能:1、Linux基础知识内容,和命令使用,以及用户和权限等核心知识点;2、Linux从进程、资源、任务、文件、软件包、磁盘等管方法;3、安全架构、安全威胁模型、以及加密
    JSONP:首先在客户端册一个函数;然后把函数名字传给服务器;接着服务器生成JSON数据,并以Javascript语法方式,将数据传客户端函数中;最后在客户端册函数中接收JSON即可

    专题推荐

    推荐视频教程
  • MySQL权威开发指南(教程)MySQL权威开发指南(教程)
  • MySQL数据库技术小知识每日分享MySQL数据库技术小知识每日分享
  • MySQL高级进阶视频教程MySQL高级进阶视频教程
  • 视频教程分类