博客
关于我
实验吧——WriteUp&&涨姿势(4)
阅读量:234 次
发布时间:2019-02-28

本文共 1395 字,大约阅读时间需要 4 分钟。

WriteUp

  1. 最安全的管理系统
  2. 认真你就输了
  3. so beautiful so white

涨姿势

  1. 程序逻辑问题
  2. FALSE

最安全的管理系统

这里写图片描述

解题思路

找个合适的MD5,再来个序列化搞定

WriteUP

直接输入没有异常反应,那就右键源代码

这里写图片描述

MD5后值和'0'弱类型相等的字符串,网上随便找个就行str='240610708'     md5(str)='0e462097431906509019562988736854'
提交后出现新的url,进去看看

这里写图片描述

这里写图片描述

先反序列化,然后判断得到的数组相应元素是否符合要求是否符合要求只要用弱类型相等就行了,Bool类型的true和字符串弱类型相等$arr = ['user'=>true,'pass'=>true] => a:2:{s:4:"user";b:1;s:4:"pass";b:1;}Playload:user = 240610708    pass =  a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

这里写图片描述


认真你就输了

这里写图片描述

解题思路

打不开一般说明文件类型有问题

WriteUp

HxD看看马上发现好像是zip文件

这里写图片描述

直接改后缀看看

这里写图片描述

直接在某个文件夹下找到flag

这里写图片描述


so beautiful so white

解题思路

图片中找到密码,解压缩Zip得到残缺的GIF,补全得flag

WriteUp

Stegsolve打开图片得到key

这里写图片描述

解压缩Zip得到GIF

这里写图片描述

GIF打不开判断是头结构缺失,HxD看看,确实缺失,补全它

这里写图片描述

打开GIF即可

这里写图片描述


程序逻辑问题

这里写图片描述

解题思路

在如下查询语句失败时会返回union后面的语句,即 'Hello'SELECT username FROM admin where id =-1 union select concat('Hello')

WriteUp

惯例右键源代码,发现代码文件

这里写图片描述

这里写图片描述

代码审计后发现1. pass被MD5处理2. mysql_query()存在漏洞,无论用户是否存在都返回成功3. mysql_fetch_array($query,MYSQL_ASSOC)从查询结果取一个关联数组4. 传入的pass和查询的pass一样则得到flag
1. 由4可知,我们能控制的只有自己提交的pass,所以我们需要查询得到的pass和我们的pass一样2. 查询得到的pass来自mysql_fetch_array($query,MYSQL_ASSOC),所以我们要控制查询结果3. 由2知查询任意用户都不会报错4. 关键点:Select语句失败会返回Union后面的字符串,这里就可以控制查询结果Playload:user=1'  union select '8b1a9953c4611296a827abf8c47804d7' #&pass=Hello

这里写图片描述

涨姿势点

mysql_query()的任意查询漏洞select语句失败时返回union后面的字符串

FALSE

这里写图片描述

解题思路

SHA1函数的漏洞

WriteUP

因为SHA1函数在处理数组时会报错返回false,所以当'name'和'password'都是数组时就返回两个false,此时false==false。所以只需构造两个不同的数组

这里写图片描述

涨姿势点

SHA1函数处理数组时返回falsexxx[] = para可以控制提交的xxx为数组类型

你可能感兴趣的文章
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
mysql 状态检查,备份,修复
查看>>