当前位置:网站首页>正则表达式绕过
正则表达式绕过
2022-08-04 22:25:00 【李凯 北信】
首先准备靶场环境。
打开小皮软件,开启并配置apache环境和数据库,并把根目录修改一下。
打开靶场,登录名字Dumb
对靶场进行查询
首先使用order by来查看列
使用order by来查看列是因为在联合查询的时候,如果列不一致,是会报错的。
如果第一次输入的列表数多了是会报错的
,所以往下一个一个减来试。
由order by可以知道这个表一共有3列,那么我们就可以查看2,3列;可以看的出来,第二列存储的是登录名字,第三列是密码。
在浏览器中输入:localhost/Less-1/?id=1 'union select 1,2,3–+
既然知道了用户和密码的列数,那我们也可以查找user;
在浏览器中输入:localhost/Less-1/?id=1 'union select 1,(select user()),3–+
但是如果说想要继续编写的话是不可以,因为在编辑网站中的正则表达式的时候设置的是select\b[\s\S]*\bfrom,以select开头,并且在查询的时候一定会跟一个from去引用表。
这里匹配的时候,以select开头,匹配到了select后,\b匹配的就是边界,\s\S两个在一起使用的话就可以相当于匹配所有字符,“*”匹配0次或者多次;这样的表达式就是在过滤注入,让你注入不了。
在配置文件中添加下面语句,然后在在浏览器中输入地址:localhost/Less-1/?id=1
改了之后访问的结果是:
开始进行绕过操作
由于上面出现的问题,我们想要绕过的话,就不让出现边界,也就是改变from的值(但是要保证是个单词,并且需要延长,还不能报错)
唯一好处就是mysql是支持科学计数法的,来设置,如果加上科学计数法来查询的话select username,1e1from users;
由于1e1是科学计数法,mysql识别并且单独列出来一列,而且“1e1”可以和from连接在一起使用,系统会认为这是两个命令,所以这样既没有报错,同时也绕过了正则。但是也样并没有完全解决。
当我这样输入要绕过的时候,他提示了“Operand should contain 1 column(s)”你查询的列超范围了。因为我们前面查的时候是三列,现在加了一个科学计数法为了绕过,但是这样也相应的多了一列。所以可以换一种方式来写,也就是换一种语法来将4列变成3列
** localhost/Less-1/?id=1 'union select 1,group_cocat(username,0x3a,password)from users)–+**
这样写的方式来减少咱们列的输出,这样的话第二列显示的就是用户名和密码,第三列就是加入的科学计数法。
边栏推荐
猜你喜欢
随机推荐
论文解读(PPNP)《Predict then Propagate: Graph Neural Networks meet Personalized PageRank》
The use and principle of CountDownLatch
ES 数据聚合、数据同步、集群
Autowired自动装配
Numpy on the superposition of two arrays
OC-拷贝
LocalDateTime的详细使用方法
力扣19-删除链表的倒数第 N 个结点——链表
PowerBI scripture series
【组成原理 六 存储器类型】
智能盘点钢筋数量AI识别
Nacos配置中心之客户端长轮询
Charles & TCPDump & Fiddler 抓包三兄弟七夕联手,还抓不到你的心?
老叶的三束玫瑰
JVM memory configuration parameter GC log
年薪40W测试工程师成长之路,你在哪个阶段?
使用cpolar优化树莓派上的网页(2)
SRv6网络的安全解决方案
JVM内存配置参数GC日志
打卡第 2 天: urllib简记