实验吧——WriteUp&&涨姿势(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函数处理数组时返回false
xxx[] = para可以控制提交的xxx为数组类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值