sql注入简介

2019-11-05  本文已影响0人  nohands_noob
sql注入原理

当客户端传递给sql语句的参数没有做安全过滤式,用户可以任意构造改变sql语句结构,执行攻击者想要的操作

栗子:语句"select * from table where id=" + id
   当id传递 1 or 1=1时,语句就变成了
   select * from table where id=1 or 1=1
   该语句就恒为真,满足所有行的结果

Mysql注入中常用的函数
函数 函数功能
system_user() 系统用户名
user() 用户名
current_user() 当前用户名
session_user() 连接数据库的用户名
database() 当前数据库名
version() 数据库版本
@@datadir 数据库路径
@@basedir 数据库安装路径
@@version_compile_os 操作系统
concat() 无分隔符连接字符串
concat_ws 含分隔符连接字符串
group_concat 以逗号连接字符串
load_file() 读取本地文件
info outfile 写文件
ascii() 字符的ascii码
ord() 字符串的第一个字符ascii码
mid() 返回子字符串
substr() 返回子字符串
length() 返回字符串长度
一般注入流程:

1.寻找注入点
  类似url中传递参数xxx.xxx?id=x,像这种可能会与数据库交互的,都可能会存在注入点

2.测试注入点
  传递" ' "造成引号闭合失败,出错,则可能存在注入点
  继续传递" '# ",若无报错,说明引号闭合成功,传递的参数为字符型注入;若报错,则为数字型注入

3.开始攻击
  上sqlmap! or  手工注入

上一篇下一篇

猜你喜欢

热点阅读