Random Homebrew: Scorch
Friends: Coding 'n Cracking - Nymphaea - PS3 Forum - darkforestgroup - daxhordes.org - Tgames - coldbird - gopsp.it - pspstation.org - prometheus - hgoel.info - MakeSmartTV - ps vita

My first crash exploitable ? (Hello world !)

Post crashes / information about (potential) security issues over here! Sensitive information might be deleted without notice.

My first crash exploitable ? (Hello world !)

Postby wistine » Sat Jul 07, 2012 2:36 pm

I finally got my first hello world after days of struggling :lol:
Thank you to all who helped me, Zer01ne, Acid_Snake, Wololo, the Cobra, FrEdDy, m0skit0 ......

Image
Last edited by wistine on Sat Oct 13, 2012 3:24 am, edited 4 times in total.
wistine
 
Posts: 35
Joined: Tue Mar 27, 2012 12:54 pm

Re: My first crash exploitable ?

Postby Xian Nox » Sat Jul 07, 2012 2:50 pm

Changed your thread and module ID too. I think those can be used to identify games too, and better safe anyways. Gave it a code tag too to make it more readable.
Spoiler
Disturbed0ne wrote:PS. EVERYONE should like girls. they're just so soft. :oops:
Moderator 80% corrupt. That's funny, I don't feel corrupt. In fact, I feel pretty good.
What looks like a blog of mine can be seen here. Or stalk me on twitter.
User avatar
Xian Nox
Moderator
 
Posts: 6059
Joined: Fri Nov 05, 2010 5:27 pm
Location: /home/xian/n-field

Re: My first crash exploitable ?

Postby wistine » Sat Jul 07, 2012 2:57 pm

Xian Nox wrote:Changed your thread and module ID too. I think those can be used to identify games too, and better safe anyways. Gave it a code tag too to make it more readable.


ok here is done, thank you for the info
wistine
 
Posts: 35
Joined: Tue Mar 27, 2012 12:54 pm

Re: My first crash exploitable ?

Postby FrEdDy » Sat Jul 07, 2012 4:45 pm

Code: Select all
0x0883DA04: 0x24C60088 '...$' - addiu $a2, $a2, 136
0x0883DA08: 0x84C70000 '....' - lh $a3, 0($a2)
0x0883DA0C: 0x8CC60004 '....' - lw $a2, 4($a2)
0x0883DA10: 0x00C0F809 '....' - jalr $a2
0x0883DA14: 0x00872021 '! ..' - addu $a0, $a0, $a3
0x0883DA18: 0x8E0400BC '....' - lw $a0, 188($s0)

This is actually interesting, but not exploitable as it is.
a2 is probably a pointer to a buffer (is it a savedata crash?) or a structure.
The only way to jump to your code is actually control a2 + 136 + 4 (the address of the first jump)
Code: Select all
0x0883DA0C: 0x8CC60004 '....' - lw $a2, 4($a2)
0x0883DA10: 0x00C0F809 '....' - jalr $a2
0x0883DA14: 0x00872021 '! ..' - addu $a0, $a0, $a3

because, as you can see, a3 + a0 is only passed as an argument to function pointed by a2.
Code: Select all
0x0883DA18: 0x8E0400BC '....' - lw $a0, 188($s0)

and here it's "lost". So you have to control address of the first jump, or s0, or a2. For now, you can only pass your own args to a2(u32 a0).

But it's not crashing on the jump, you should start disassembling instructions _before_ EPC, to see what's happening, and how is a1 calculated (it's an invalid address)
https://github.com/freddy-156
<@n00b81> FREDDY CUTTIES
User avatar
FrEdDy
HBL Collaborator
 
Posts: 349
Joined: Mon Sep 27, 2010 7:08 pm

Re: My first crash exploitable ?

Postby wistine » Sat Jul 07, 2012 4:53 pm

FrEdDy wrote:
Code: Select all
0x0883DA04: 0x24C60088 '...$' - addiu $a2, $a2, 136
0x0883DA08: 0x84C70000 '....' - lh $a3, 0($a2)
0x0883DA0C: 0x8CC60004 '....' - lw $a2, 4($a2)
0x0883DA10: 0x00C0F809 '....' - jalr $a2
0x0883DA14: 0x00872021 '! ..' - addu $a0, $a0, $a3
0x0883DA18: 0x8E0400BC '....' - lw $a0, 188($s0)

This is actually interesting, but not exploitable as it is.
a2 is probably a pointer to a buffer (is it a savedata crash?) or a structure.
The only way to jump to your code is actually control a2 + 136 + 4 (the address of the first jump)
Code: Select all
0x0883DA0C: 0x8CC60004 '....' - lw $a2, 4($a2)
0x0883DA10: 0x00C0F809 '....' - jalr $a2
0x0883DA14: 0x00872021 '! ..' - addu $a0, $a0, $a3

because, as you can see, a3 + a0 is only passed as an argument to function pointed by a2.
Code: Select all
0x0883DA18: 0x8E0400BC '....' - lw $a0, 188($s0)

and here it's "lost". So you have to control address of the first jump, or s0, or a2. For now, you can only pass your own args to a2(u32 a0).

But it's not crashing on the jump, you should start disassembling instructions _before_ EPC, to see what's happening, and how is a1 calculated (it's an invalid address)




this is a psp game save data, ok I'll see if I manage to get to the register $ a2
wistine
 
Posts: 35
Joined: Tue Mar 27, 2012 12:54 pm

Re: My first crash exploitable ? (Hello world !)

Postby wistine » Sat Oct 13, 2012 3:26 am

Thank all ;) :D
wistine
 
Posts: 35
Joined: Tue Mar 27, 2012 12:54 pm


Return to Security

Who is online

Users browsing this forum: No registered users and 3 guests