实验吧[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, ...
随机推荐
- apache的ab压力测试介绍
1.ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,既不会占 ...
- 第二十四章 Find命令详细介绍
一.Find 概述 可以根据文件的名称.文件大小.文件的修改时间.文件的类型.文件的权限.文件的属主属组.文件的目录层级进行查找 Find的语法: find [-H] [-L] [-P] [-Olev ...
- 第三章 虚拟机的简单使用及其xshell远程工具的使用
一.虚拟机的快照 1.虚拟机的几种状态: 开机状态 === 运行状态 关机状态 挂起状态 === 虚拟机不关机,但是你使用不了 定身术 快照就是虚拟机的某种状态 === 月光宝盒 2.快照分类: 开机 ...
- PyTorch常用参数初始化方法详解
1. 均匀分布 torch.nn.init.uniform_(tensor, a=0, b=1) 从均匀分布U(a, b)中采样,初始化张量. 参数: tensor - 需要填充的张量 a - 均匀分 ...
- Ubuntu 18.04 LTS IP 地址设置
和之前的版本不太一样, Ubuntu 18.04 的 ip地址设置是用netplan管理的 配置文件在: /etc/netplan/50-cloud-init.yaml 示例文件如下: # T ...
- javaScript 必会基础知识
1.JavaScript是一种浏览器解析的轻量级脚本语言. 2.html.jsp等内部js代码写在<script></script>之间:外部js文件中书写js代码不能有< ...
- 今日sb题之 sdnuoj 1064
1 #include <iostream> 2 #include <string> 3 #include <stdio.h> 4 #include <cmat ...
- CodeForces 1344D Résumé Review
题意 给定一个长度为 \(n\) 的序列 \(a\) 和一个整数 \(k\),构造一个序列 \(b\) 使得满足以下条件: \(0\leq b_i\leq a_i\) \(\sum\limits_{i ...
- 【面经】面试官:如何以最高的效率从MySQL中随机查询一条记录?
写在前面 MySQL数据库在互联网行业使用的比较多,有些小伙伴可能会认为MySQL数据库比较小,存储不了很多的数据.其实,这些小伙伴是真的不了解MySQL.MySQL的小不是说使用MySQL存储的数据 ...
- ZOJ 1004 Anagrams by Stack
Anagrams by Stack 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1004 题意:通过堆栈实现将一 ...