一次解题赛和运维赛的wp

解题赛

Misc

Png先生的秘密

看了一下压缩包里有一个png图片,没有注释,尝试使用文件名进行解压缩,无果

 猜测zip伪加密,找到压缩源文件目录区对应的50 4B找到,修改09 00为00 00

 

然后用bandizip解压缩打开,得到png图片

用010打开png先生的秘密.png,可以看到缺少png文件头

添加上文件头以后,还是无法打开

可以看到下面还是提示checksum,网上搜了下长宽也是crc校验的范围,猜测是长宽的问题

import struct
import zlib


def hexStr2bytes(s):
    b = b""
    for i in range(0, len(s), 2):
        temp = s[i:i + 2]
        b += struct.pack("B", int(temp, 16))
    return b


str1 = "49484452"  # (IDCH)
str2 = "0806000000"  # (IHDR)的后五位字节
bytes1 = hexStr2bytes(str1)
bytes2 = hexStr2bytes(str2)
wid, hei = 1125, 300  # 图片的宽、高

crc32 = "0x082b810d"  # 填入CRC校验码

for w in range(wid, wid + 2000):
    for h in range(hei, hei + 2000):
        width = hex(w)[2:].rjust(8, '0')
        height = hex(h)[2:].rjust(8, '0')
        bytes_temp = hexStr2bytes(width + height)
        if eval(hex(zlib.crc32(bytes1 + bytes_temp + bytes2))) == eval(crc32):
            print(hex(w), hex(h))

最后得到长宽分别为0x480 0x288

修改该长宽以后,还是一样打不开

这时候搜到一个工具,pngcheck,运行一下,得到下面的结果,有一个EASY节无法解析

png的关键节主要是IHDR、PLTE、IDAT、IEND,尝试把EASY修改成IDAT,即

flag为:

flag{da4f0a96-82f2-d124-11d0-bcf232a5ce87}

Web

老生常谈的注入

先用bp抓一下包,并保存为post.txt

用sqlmap注入一下,先撞库

python sqlmap.py -r "/home/kali/Desktop/post.txt" -p "passwd" --random-agent --batch --dbs

然后爆表

python sqlmap.py -r "/home/kali/Desktop/post.txt" -p "passwd" --random-agent --batch -D "security" --tables

python sqlmap.py -r "/home/kali/Desktop/post.txt" -p "passwd" --random-agent --batch -D "security" -T "flag" --columns 

尝试找了很多关于"unable to retrieve column names for table"的方法,还是不行,根据sqlmap提供的payload,进行手动注入

最终的flag为:

flag{6TGswghZSJhBO01E7vm9wLQnKV3QUXcSSDIcbPTV}

bibibi

bibibibibibi

用dirsearch跑了一下,发现网站下面只有两个网页,index.html和robots.txt

在robots.txt下面给了提示,/fl4gi5Here.php页面

 

flag为

flag{yOGywj3w9pG2dSLjQC237Yw5o6tfZ0xkZ8t7YCt3}

 Z-Blog-1

这是一个网站,但里面有份秘密文件

先用dirsearch跑着,根据上一题,可以尝试一下先看看robots.txt,可以看到禁止爬虫访问两个目录,一个是zb_users,另一个是zb_system

可以访问一下看看,zb_users下有一个This-is_flag.php文件,非常可疑

打开以后会发现为空,应该是一个干扰项 

moreandno

是一个代码审计

运维赛

题目信息

1.请根据主机上的一份日志文件对发送请求最多的IP进行ssh限制登录;

2.要求中需要30天修改一次密码的同时必须隐藏apache版本信息;

3.禁止删除root密钥文件,因root密钥问题导致后续checker无法运行由选手自行负责;

4.应急响应过程中不能影响正常的业务功能和作业计划,请勿修改ssh和web服务的端口或使用防火墙策略阻止ssh和web连接;

5.部分文件中的修复是命令必须彻底删除,而不是注释,否则会影响最后checker检测的成绩.

6.主机中运行的服务和端口:mysql-3306、ssh-22(账号root密码root)、http-80、http-8000,上述服务选手可根据需要可以自行重启服务器但是需要保证端口信息不变化,否则会被判断checker失败;

1、根据主机上的一份日志文件对发送请求最多的IP进行ssh限制登录

ls当前目录,发现存在log.log文件 

 

使用以下命令,查询出发送请求最多的IP

cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10

linux 服务器通过设置/etc/hosts.allow/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务

hosts.allow和hosts.deny两个文件同时设置规则的时候,hosts.allow文件中的规则优先级高,按照此方法设置后服务器只允许192.168.0.1这个IP地址的SSH登录,其它的IP都会拒绝。

2、30天修改一次密码

输入以下命令编辑 /etc/login.defs 文件

vim /etc/login.defs

 找到 PASS_MAX_DAYS 选项,该选项控制着用户密码的最长时间。默认情况下,该选项设置为 99999,表示用户密码永不过期。将其更改为 30,如下所示

 强制所有用户在下次登录时更改其密码

chage --maxdays 30 root

多加了这句,系统直接挂了,后面就没机会写了 

3、隐藏apache版本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值