access.log
当中存在多条这样的记录
172.20.0.2:80 172.20.0.1 - - [01/Nov/2024:02:15:06 +0000] "GET / HTTP/1.1" 200 640 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
对日志格式进行分析
172.20.0.2:80
服务器的IP地址和端口号。172.20.0.1
发出请求的客户端的IP地址。- 第一个
-
此处通常是记录用户名,但此字段为空-
代表没有认证信息提供。一般来说,当访问没有身份验证时,这个字段会被填充为-
。 - 第二个
-
这个字段通常表示访问日志中的”用户标识符”,同样也为空,说明请求没有提供此信息。 [01/Nov/2024:02:15:06 +0000]
请求发生的时间
01/Nov/2024
是请求的日期,表示2024年11月1日。
02:15:06
是请求的具体时间,表示UTC时区的时间。
+0000
是时区偏移量,表示时间是UTC时间,没有偏移。"GET / HTTP/1.1"
请求的具体内容,包括请求方法、资源和协议版本。
GET
是HTTP请求方法之一,表示请求资源。
/
是请求的资源路径,表示客户端请求网站的首页(根路径)。
HTTP/1.1
是使用的HTTP协议版本。200
HTTP响应状态码,表示请求成功。640
:
表示响应返回的数据大小,单位是字节。"-"
通常用来记录引荐来源(Referer),也就是从哪个页面链接到当前页面。在这个例子中,"-"
表示没有来源页面信息。"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
客户端的用户代理(User-Agent)字符串,用来标识客户端浏览器的信息。
Mozilla/5.0
:表示客户端兼容性,通常浏览器的标识。
Windows NT 10.0; Win64; x64
:表示操作系统信息,客户端使用的是Windows 10,64位版本。
AppleWebKit/537.36
:表示浏览器的渲染引擎是AppleWebKit(WebKit是Chrome和Safari等浏览器的引擎)。
KHTML, like Gecko
:表示它的渲染引擎类似于Gecko(Firefox浏览器的渲染引擎)。
Chrome/130.0.0.0
:表示浏览器的版本是Chrome 130.0.0.0。
Safari/537.36
:表示浏览器兼容Safari的版本。
Edg/130.0.0.0
:表示客户端实际上是Microsoft Edge浏览器,版本130.0.0.0。
可以写出正则表达式筛选出不同的字段r'(?P<ip>d+.d+.d+.d+):(?P<port>d+)s' # IP地址和端口 r'(?P<client_ip>d+.d+.d+.d+)s-s-s' # 客户端IP r'[(?P<timestamp>.*?)]s' # 时间戳 r'"(?P<method>w+)s(?P<path>[^s]+)sHTTP/1.1"s' # 请求方法和path r'(?P<status>d+)s(?P<size>d+)s' # 状态码和返回字节数 r'"(?P<referrer>.*?)"s' # 来源链接 r'"(?P<user_agent>.*?)"' # 用户代理
通过对每一条记录进行匹配得到日志的总条数为
126451
根据访问次数对/publishers.php
进行更细致的分析
可以看出来UA头是sqlmap
,对UA头进行筛选
根据日志末尾可以发现有特殊字符,结合日志可以发现可以以-- w+
作为筛选条件
以最后四个字符作每组的分组依据
最后对sqlmap注入的语句进行正则匹配SUBSTR(((.*?)),(d+),d+)([>=])CHAR((d+))
经过尝试得到下面这一条是有效的ENCRYPTED PRIVATE KEY
-----BEGIN ENCRYPTED PRIVATE KEY----- MIIC3TBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIOsDeLUSmUYYCAggA MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBC90/rdH5nC9mPbmu8wyVI4BIIC gLK3anRAfdD6+mm5zQu6GssbXAkDka9BZw5Q7fvz+Dsjp4f2SHBv0l2yXzOV0WES qCz6xiwwJ1pRZ81F+ITcypFZl09mctZ79RHVySW0Khy5qS7LmMK0VegttpdXqz31 otPcqC2l5zrVurtiRCHwWmVBPKBmlcCCLCLkRugTga33QDt63OKE7J21rbzWxtZR 5tHzvrbA80sPVplstF25fA2LmF53XAi4I1b06Okb2gtmIVu8Sf8MTmlpHZ5zel5l Lpt4G7XvUtd+icZWKrhGfTC3mBneeD1hkDGxhf/KksIeCUTb8tlwPxiASJ9HjPw2 64+Ipmqb3JkvFQLRC4CdhSluSvlEuCo4vvHu/aUhvuRe40LuaI2uc2v+2xJahl3Z cbR7b0WUm4V+fnbB9YioaDrQ8qJtpfEAMCsDKu4Dql+8kZOps64xMyek/8DIE1Hf Xp0RHD15qTemAnnsy/LI5X70O6mhvh8I6MU7M5dYfuIb9ytStNfrOmfE6QEK+biw 7xJE8AzK4pLLIpojLsIqh68l4ZnJnSC4hb14ashKk9Wr0MR9Zize3gLSGeBbB+w9 fkXivQuZAT4d7An+/19D4Q/I1kNZTipdWxCJWMHnBJVzlE6JrTZg1RrtIbXUxaxw rD6AiW5fK6fAFzwM12x5/w53T/CH4qMtjtreM5SNvrJ1HNnYP83o16V1th8mhPvk w1RKiKFY12lMui01658yeVAGr6y7CRVwDXcRal1mzkaWRMtLk/QAGsBTUZA6x4bx 5uDMCkpz5oW8N6hfmEDOYTXq38DsB9f2h4G5T4GLMCl3fHvo/VQ+0arUBNzM2zPd fK/XNO8/J51ZyF6Fwdwk9gc= -----END ENCRYPTED PRIVATE KEY-----
现在需要找解密私钥的key,在导出的所有SQL结果中存在这个结果
SELECT COALESCE(CAST(pr_info AS TEXT),CHAR(32)) FROM pub_info LIMIT 6,1 This is sample text data for Scootney Books, publisher 9952 in the pubs database. Scootney Books is located in New York City, New York.you may view the updated logo if you want to get you flag.
去流量包里面找一下上传的图片
得到解密的密钥为thisisthepassphrasecramerknowsbutyoudontknow
利用Openssl进行解密
openssl pkey -in encrypt.pem -out decrypted.pem -passin pass:thisisthepassphrasecramerknowsbutyoudontknow
得到解密后的私钥
-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALbLJIWZOSeu2Re3 lLtjQJ3j01CnYvebhUzXexP5YpNeRpGqb0MM2TYAtlF4cDckaUUEjL7oy7pkp4/6 eT/BIpR72c50udejdxEc4yiq4/emIJHAYDKdkYq6VWM0DjiAxfqAdK33USAai8C3 QDcCgkufXxHg2V2mf6uSsV4FcOmhAgMBAAECgYEAkBAsWYq4C/l2qYWLF+CSdZ2v 1poFmsYcWcJeAxECSsj7byRXCg4fRrtq9WypbBwrRzTdxDxvDBj2IrgyRTfvCqZD s48y3vvnyvVi/CezOuMZGSgOEuDobmquF/ldYxhx3WC/1Gz/5/KkOyhI9x8KCyQq sUVlQXtse0gNYj0E6AECQQDxb4l+tnz4/kcK3s0dWu/FJAuJBdKSP321fusaVBUT bGG1gbRPUTs7nh10XA7DHolcZuKI+ve4kqD56TDGfN1BAkEAwdIAY/eoAr7RcxFC 4btQndK3XhSrZUREAkrqRwf+ymudMOKagpy82wWT7wjHEZACFpxtDyWNUGdXMICO YNgUYQJAN2cv9xrrXLwFE3KDQSw//05BM2VZp+PX9hE05CrNV1K0rVEhTl5GqGyl N7F0VcQpI0Ic0/A7bmh/djnTzoiSwQJBAIHIiRJnh00vUTjn2g0lTLohmz+YP5yz tYaDe5TMucP5g2x0kFndcmiGt6RcEFCmSX+yhySZVKL+T9fefXhDuIECQQDGcvmg NphtxQC21Kp0H43gfgIsrmA53DCUgKT5yw0Kl325nv/ZQg7kX254+/7w4aPauSK4 8teA02fR+n2JOxKd -----END PRIVATE KEY-----
找到上面那条私钥对应的
acc_flag
SELECT COALESCE(CAST(acc_flag AS TEXT),CHAR(32)) FROM accounts LIMIT 7,1 tJkjkC9zdTfV/vjWjKBQERPvbJB+MTzNgv9Q7OsSeW9VO+cz9GM7gdfFu3+UwSfK p3OStBv6wESZitD8x9rR8Jx4LwKU+i1ysKUQWOvORYSSif1zt37ored1r1IALNX1 jKEWRMZXTQU07kNULKk3Zve7Q8qTnbGviNqFjG3W4s0=
解一下密
echo 'tJkjkC9zdTfV/vjWjKBQERPvbJB+MTzNgv9Q7OsSeW9VO+cz9GM7gdfFu3+UwSfK p3OStBv6wESZitD8x9rR8Jx4LwKU+i1ysKUQWOvORYSSif1zt37ored1r1IALNX1 jKEWRMZXTQU07kNULKk3Zve7Q8qTnbGviNqFjG3W4s0=' base64 -d> data.txt
openssl pkeyutl -decrypt -inkey decrypted.pem -in data.txt -out decrypted_data.txt