当前位置:网站首页>正则表达式绕过
正则表达式绕过
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)–+**
这样写的方式来减少咱们列的输出,这样的话第二列显示的就是用户名和密码,第三列就是加入的科学计数法。
边栏推荐
猜你喜欢
随机推荐
docker 部署redis集群
字节跳动秋招提前批高频面试问题汇总!(内附答案!)
各行各业都受到重创,游戏行业却如火如荼,如何加入游戏模型师职业
VSCode—常用快捷键(持续记录
【2020】【Paper Notes】Metasurfaces: Multifunctional and Programmable——
QT 子窗口—>主窗口 信号和槽的交互
MQTT[一]基础知识介绍
promise详解
rk3399 驱动屏参的几种方式
FinClip崁入式搭建生态平台,降低合作门槛
Rt-thread [三] link.lds链接脚本详解
看看XDOC如何做Word文档预览
【TCP/IP 四 IP 网际协议】
The upgrade and transformation plan of the fortress machine for medium and large commercial banks!Must see!
【3D建模制作技巧分享】zbrush贴图映射小技巧
Reconfigure the ffmpeg plugin in chrome
The Record of Reminding myself
2022精选最新金融银行面试真题——附带答案
重新配置chrome中ffmpeg插件
good luck