数据库查询操作 SQL注入学习
OWASP-top10(2021)
SQL注入产生原因:注入产生的原因是接受相关参数未经处理直接带入数据库查询操作;注入攻击属于服务端攻击,他与操作系统、数据库类型
SQL注入学习——资源、笔记整理 OWASP-top10(2021) SQL注入产生原因:注入产生的原因是接受相关参数未经处理直接带入数据库查询操作;注入攻击属于服务端攻击,他与操作系统、数据库类型、脚本语言类型无关。 SQL注入验证方法:在参数后面进行单引号拼接 and 1=1、and1=2或单引号,看页面是否有报错,如果产生报错说明有注入点。 Ps:and为与(且),当拼接 and 1=1 时sql语句为真不会报错,当拼接and 1=2 时 sql语句为假将产生报错。 SQL注入易产生的地方: *.com/*.asp?id=xx(ASP注入) *.com/*.php?id=xx (php注入) *.com/*.jsp?id=xx(jsp注入) ps:必须为动态脚本,以及必须有参数才可产生SQL注入; cookices 、referee 、user-agent ,post ,get (get 参数显示在url 上,) 万能密码登录: 当找到用户登录页面,可首先进行万能密码登录尝试: Yuan ‘or 1=1- – Ps :用户名为不存在,该条语句为假,但用了or (或)进行拼接且1=1 为真,则该语句为真,继续执行,后面- -为注释数据库查询操作,将后面语法进行注释不再执行,则该条语句直接越过数据库验证,成功登录。存在万能密码的地方,也就存在这SQL 注入; 注入分类: 数字型、字符型、搜索型(’%vince%’ or 1=1)、XX型号(username=(’xx’)or 1=1); 注入提交方式: GET提交、POST提交、Cookie(数据头等)提交 Ps:其中get提交在url可直接查看参数,post与数据头方式提交需要进行Burpsuite抓包; 注入攻击支持类型: Information_schema注入:在mysql数据库5.0以上版本,information_schema时mysql系统自带的数据库,其中保存这关于mysql服务器所维护的所有数据库信息。 PS:通常,union和information_schema联合使用; 基于布尔型SQL注入:select ascii(substr(database(),1,1))>xxx;(xxx为数字) 基于时间型SQL注入:vince’ and sleep(x)# (x为数字代表时间,#为注释) 基于报错行SQL注入(类似于基于函数报错注入); Ps:布尔型SQL注入不能应用于时间型SQL注入,但时间型SQL注入可以应用到布尔型SQL注入上,所有说,时间型SQL注入为万能注入语句。 Ps:宽字节注入需要满足三个条件才可触发:1.存在注入点、2.网页使用GBK编码手段3.phpStudy开启魔术符号magic_quctes_gpc功能。该功能的唯一作用就是将单引号转义成/’ 无法构成注入语句。 Ps:宽字节注入如果被编码,则可能造成不能成功注入; SQL注入工具: sql map;2.Havij(萝卜头)3. Pangolin(穿山甲); Original: Author: 学到凌晨一点 Title: SQL注入学习 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |