Sqli-labs(一)
SQL注入练习
一些函数与sql语句
usr() 用户名
version() 版本
database() 当前数据库名
@@datadir 路径
@@version_compile_os 系统
Mysql5.0以上,自带information_schema数据库,存储着所有数据库的数据库名,表名,列名
information_schema.tables 记录所有表名信息的表
information_schema.colums 记录所有列名信息的表
table_name: 表名
column_name:列名
table_schema: 查数据库名
limit m,n
concat(str1,str2,...)字符串连接
concat_ws(seperator,str1,str2,....)有分隔符的连接
group_concat()
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
substr()
语法:substr(string,start,length)
string - 指定的要截取的字符串。
start - 必需,规定在字符串的何处开始。
ascii() 查询ascii码
chr() 转换字符
select chr(38) from dual 输出:&
select ASCII('&') from dual 输出:38
mid()
MID 函数用于从文本字段中提取字符
SELECT MID(column_name,start[,length]) FROM table_name
column_name 必需。要提取字符的字段。
start 必需。规定开始位置(起始值是 1)。
length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本
if()
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
例:
If(ascii(substr(databse(),1,1)=115,1,sleep(22)))盲注测试
rand()
RAND函数被调用产生0和1之间的一个随机数
floor()
函数返回小于或等于指定值(value)的最小整数,取整
select floor(103.56) from dual ---103
select floor(103.46) from dual ---103
sleep(num)
延缓num后做出响应
count()
count(column_name) 函数返回指定列的值的数目(NULL 不计入)
COUNT(*) 函数返回表中的记录数
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目
length(str)
返回字符串str的长度,以字节为单位
Union Select ..... Into outfile” “ 写入后门
Union select “” into outfile “d:\..........”#
Union select 1,unhex(hex(usermname)),3 from admin
解决网站编码不一致
Updatexml(xml文档名称,xpath字符串,替换查找到的符合条件的数据)
Updatexml(1,SQL,2)
less-1 单引号
使用单引号来进行闭合
判断列数
报错
查询
查数据库
查表名
查列名
查数据
Less-2 数字型
Less-3 单引号 括号
Less-4 双引号 括号
Less-5 单引号 盲注
配合bp爆破出数据库名
Less-6 报错注入
Less-7 写入webshell
文件夹要有相应的权限
Less-8 盲注
Less-9 时间盲注
Less-10 时间盲注
Less-11 POST 报文 注入 或者 万能密码
Less-12 与11 一样思路
Less-13
Less-14 双引号 万能密码
Less-15 单引号
Less-16
Less-17
注入点在passswd
Less-18
HTTP头注入
User -agent注入
Less-19 refer 注入
Less-20 cookie注入
Less-21 cookie处注入,’)闭合
Base64加密admin1')and extractvalue(1,concat(0x7e,(select @@basedir),0x7e))#