博客
关于我
实验吧——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中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>