当前位置: 首页 > news >正文

ctfshow_web11

ctf.show_web11

简单的代码审计,这段代码定义了一个名为replaceSpecialChar的函数,该函数接受一个字符串$strParam作为参数。函数内部使用了正则表达式$regex来匹配SQL语句中的一些关键字,包括selectfromwherejoinsleepand、空格\sunion和逗号,preg_replace($regex,"",$strParam)函数会将匹配到的任何关键字替换为空字符串,从而移除这些关键字。strlen($password)计算原始密码字符串的长度。strlen(replaceSpecialChar($password))计算经过replaceSpecialChar函数处理后的密码字符串的长度。如果处理后的密码字符串长度与原始密码字符串长度不同,说明原始密码中包含了正则表达式匹配的关键字,代码会调用die("sql inject error")终止脚本并输出错误信息“sql inject error”

验证用户输入的密码是否与存储在会话($_SESSION)中的密码匹配。

如果两个密码相等,代码会输出一个变量$flag的内容,这个变量通常用于存储某种标志或成功消息。

如果两个密码不相等,代码会输出“error”,表示密码验证失败。

最后这个password和session中的password对比非常关键,正常来说既要绕过过滤还要保证前后 长度相同还是很难的,但是这里给了一条生路就是你可以抓包然后把session的值改为和你登陆密码一样的值就可以获得flag了

http://www.hskmm.com/?act=detail&tid=8497

相关文章:

  • ctfshow_web13
  • ctfshow_web9
  • 锁屏界面无法通过任意键弹出开机密码
  • 应急响应-日志分析 - voasem
  • ctfshow web 10
  • SMA的射频连接器
  • 什么是Elasticsearch?它与其他搜索引擎相比有什么优势?
  • pdf.js-2.3.0国内下载地址
  • opencv学习记录2
  • get请求图片文件转为base64编码
  • BMS与威纶通人机界面通信问题
  • Blazor全栈是个陷阱
  • 大型语言模型安全实践:Copilot安全防护经验总结
  • 一些编程语言的发展史
  • mysql生成uuid,3种实用方法详解
  • vmware ubuntu共享文件夹
  • 【10章】n8n+AI工作流:从入门到企业级AI应用实战
  • CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强
  • svg和canvas的区别
  • 固态电池革命:我们离“续航焦虑终结者”还有多远?
  • 心得
  • Android 安卓 困难处理记录 腾讯IM和厂商离线推送难题 点击离线推送无法唤醒APP启动页但某些Service服务和Application被启动
  • 9.18
  • Codeforces Round 1051 (Div 2)
  • scheduleAtFixedRate
  • CRMEB标准版PHP核销功能深度解析,附权限配置技巧
  • 一文详细说明大模型安全评估要怎么做
  • apache doris 和 clickhouse的区别
  • Python numba jit加速计算
  • 人机协作开发新体验:花两天时间与Cursor共同打造一个微信小程序