sql具体怎么回事
他的流程简单理解
1、web页面构造请求url,url访问连接服务器,后服务器加载解析本地的运行文件,然后运行脚本连接数据库并执行对应sql语句。sql语句执行完了会给数据库返回数据,完后由数据库将返回数据(web页面)构造为html文件传递给web界面,web界面运行,呈现web页面给客户端呈现。
2、这个过程中一般来说是比较安全,为啥安全应为是由本地服务器验证通过后交给数据库执行对应语句。但是实际情况他是要和我们实际请求数据要进行结合后执行才行,一般来说这是动态的。所以如果客户段哪里输入一些危险的语句,且前端或者服务器没进行审查。那就会有危险。
sql注入 (想传、拿到shell得有权限 知道路径)
1、简单就是在带参的地方写sql语句,被后台解析后执行,进行攻击。
参数就是id=1 就是这个1
sql注入的几种类型
了解个东西哈
数据库类型:他是咋来的,数据库的类型是由数据库中的表来定义的。不通的数据库有不同的表类型,不管怎么分类都是两大类
一个是数字组成,一个是字符组成,所以sql注入的类型也就分为这两类。
1、数字型 对and语法判断,对1=1逻辑判断
:在参数后输入 and 1=1 返回正常 输入and 1=1之后返回报错 说明存在数字型sql
2、字符型 转换为字符串and语法判断,对逻辑判断
:参数后 and '1'='1 返回正常 and '1'='2返回错误
//为什么不能用数字的方法来确认字符
//在字符中得有’来选中字符,区别 查询方法不一样
//数字 id=1 and 1=1 抓包显示id='1 and 1=1'
//字符 id=1' and '1'='1 抓包显示id='1' and '1'='1'
新手个人理解分享一下,有不对大家多多指点哈