实验吧[WEB]——程序逻辑问题
拿到题 通过查看网页源代码发现index.txt

通过index.txt我们获得了后端的源代码

我们可以通过我画出来的这两个重要的信息得知 第一个sql查询语句没有任何过滤说明存在SQL注入漏洞。
第二个我画出的代码就是我们要获得flag的核心
if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) {
echo "<p>Logged in! Key:************** </p>";
}
这块代码的意思是 首先从数据库中提取出pw 然后逻辑与 与右边的(!strcasecmp($pass, $row[pw])) 两条语句都为真才会打印出flag
我们先看右边的这块strcasecmp是什么
strcasecmp() 函数比较两个字符串。
提示:strcasecmp() 函数是二进制安全的,且不区分大小写。
语法:
strcasecmp(string1,string2)
|
参数 |
描述 |
|
string1 |
必需。规定要比较的第一个字符串。 |
|
string2 |
必需。规定要比较的第二个字符串。 |
|
返回值: |
该函数返回:
|
所以这段(!strcasecmp($pass, $row[pw])) 是要从数据库中提取出 与我们用户输入的作比较且都是经过cmd5加密的数据 可以看源代码第16行 作比较必须相等才为0 然后!取反 这段代码的运行结果返回1 与左边的($row[pw])它是有数据就返回1 所以两者条件必须都为1或者才能打印出flag 可是数据库里面的值我们不知道 所以我们想办法构造注入语法让他满足条件。
‘
我们可以先看一个mysql查询的特性

这是我们admin表中的仅有数据 我们现在想查一个密码为xiaohua经过md5加密的
ee755bdd4adb8ac6270ef476fefab245这个是xiaohua的cmd5密文 可是数据库里面没有这个怎么办我们来构造

我们根据它的特性构造一个联合查询 这样第一条语句查询dsfd 这个用户查不到 然后第二个根据特性会返回这个结果到password字段下
select password from admin where username="dsfd" union select" ee755bdd4adb8ac6270ef476fefab245";


成功返回xiaohua md5的密文
所以我们回到我们的题

我们只关注右边红线这部分,从数据库提取不存在的值我们可以通过下方sql语句构造得到

然后$pass这块我们要输入和加密md5一样的值也就是xiaohua 这样一来 他们的条件就成立了 就能获得flag了

下来就要用到我们的注入手法

成功获得flag

也可以这样构造 方便
username:username' union select md5(1)#
password:1
引用: https://blog.csdn.net/dongyanwen6036/article/details/77768345
` https://blog.csdn.net/he_and/article/details/77618429
后记 其实这个题很简单就是对SQL语法技巧不太熟。忍不住看了WP
要继续加油啊!
实验吧[WEB]——程序逻辑问题的更多相关文章
- 实验吧_程序逻辑问题(代码审计)&上传绕过
一开始我先随便输入了几个账号名字进行测试,发现当输入的账号名为admin时会发生报错 经过测试果然是一个注入点 当拿到admin密码后发现根本没用,没办法另寻他路 审查元素时发现提示index.txt ...
- Java Web安全之程序逻辑缺陷
Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患.企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞, ...
- 一步一步实现web程序信息管理系统之三----登陆业务逻辑实现(验证码功能+参数获取)
本篇紧接着上一篇文章[一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面] 验证码功能 一般验证码功能实现方式为,前端界面访问一个url请求,后端服务代码生成一个图片流返回至浏览器 ...
- 【实验吧】guess next session&&FALSE&&NSCTF web200&&程序逻辑问题
guess next session源码: <?php session_start(); if (isset ($_GET['password'])) { if ($_GET['passwo ...
- CTF---Web入门第十二题 程序逻辑问题
程序逻辑问题分值:20 来源: 实验吧 难度:中 参与人数:6909人 Get Flag:1993人 答题人数:2070人 解题通过率:96% 绕过 解题链接: http://ctf5.shiyanb ...
- 2017-2018-2 20155225《网络对抗技术》实验九 Web安全基础
2017-2018-2 20155225<网络对抗技术>实验九 Web安全基础 WebGoat 1.String SQL Injection 题目是想办法得到数据库所有人的信用卡号,用Sm ...
- Web程序的运行原理及流程(二)
其实WEB服务器和WEB应用服务器这两个概念特别容易混淆 可以理解为装了不同软件(服务)的两台计算机(服务器)吧 先对两个概念做一个简单介绍 了解了基本的概念 我们再用两个典型的例子做一下比较(建立 ...
- SSM框架Web程序的流程(Spring SpringMVC Mybatis)
SSM框架的Web程序主要用到了三个技术: Spring:用到了注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程). SpringMVC:用到了MVC模型,将逻辑代 ...
- 发布在IIS上的Web程序,调用服务器的COM组件
场景大致是这样的,在工厂中分布着许多的PDA点,这些PDA点都要进行实时的扫描--打印操作.实现方法是采用网络打印机,然后服务器安装驱动,管理着所有的打印机.然后服务器,发布一个WebService, ...
随机推荐
- Flink on Yarn三部曲之一:准备工作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 正式班D11
2020.10.20星期二 正式班D11 bash解释器交互式环境特性 命令和文件自动补全(Tab只能补全命令和文件) 快捷键 CTRL+C ==>终止前台运行的程序 CTRL+D ==> ...
- Helium文档15-WebUI自动化-chromedriver问题
前言 helium库是自带chromedriver的,我们怎么来查看在哪里呢? 目录介绍 用我的电脑上的路径打比方如下: D:\Program Files (x86)\Python38\Lib\sit ...
- C# 面试前的准备_基础知识点的回顾_04
1.Session和Cookie的使用区别 很容易回答的就是Session在服务器端,存储的数据可以较大容量,比如我们存一个Table,上千条数据. Cookie保存在客户端,安全系数低,不能放重要的 ...
- MySQL设置慢查询
MySQL的慢查询日志是用来记录在MySQL中响应时间超过阀值的语句,则会被记录到慢查询日志中(运行时间超过long_query_time值的SQL语句): 慢查询相关参数: slow_query ...
- Python基础及爬虫入门
**写在前面**我们在学习任何一门技术的时候,往往都会看很多技术博客,很多程序员也会写自己的技术博客.但是我想写的这些不是纯技术博客,我暂时也没有这个能力写出 Python 或者爬虫相关的技术博客来. ...
- eclipse快捷键(Mac版)整理
eclipse快捷键(Mac版)整理 前言: 最近在学习JDBC,老师用的是eclipse,对于习惯了IDEA的我来说,没有了快捷键,效率明显下降. 我认为,开发工具的熟练使用,也是程序员必备的一项技 ...
- JAVA NIO 基础学习
package com.hrd.netty.demo.jnio; import java.io.BufferedReader; import java.io.IOException; import j ...
- Github优质库分享-01算法小抄 基于LeetCode
Github 优质库分享-01 算法小抄 该库总共 60 多篇原创文章,都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂,绝不是简单的代码堆砌. 目前 sta ...
- FastCGI协议分析
不知道什么时候,就开始有了让HomeServer支持PHP的念头.于是分析起了FastCGI协议.FastCGI用于WebServer与WebApplication之间的通讯,例如Apache与PHP ...