コンピュータ設計コースの課題として、私のチームは、バッファオーバーフローと発見したいくつかのガジェットを使用してリターン指向プログラミングを使用してシェルにアクセスする必要があります。我々は我々がすることができますr0にして、そこからロードすることができますいくつかのガジェットを使用して次にROPを使用してARM内のシェルにアクセスする
(GDB) find &system, +9999999, "/bin/sh"
:GDBを使用して
は、我々は次のコマンドで「/ binに/ shの」文字列の場所を見つけました飛び込む 。
残念ながら、端末にアクセスする直前にセグメント障害が発生するたびに、私たちはこれでかなり失われており、あなたが私たちに与えることができるあらゆる助けを使うことができました。これを引き起こす一般的なエラーを知っている人はいますか?
(gdb) x/15a $sp
0xbefffb40: 0x85a4 0x42424141 0x44444343 0x46464545
0xbefffb50: 0xbeff0046 0xb6f55108 <inet6_opt_finish+56> 0xb6f84a60
0xb6f55104 <inet6_opt_finish+52>
0xbefffb60: 0x0 0xb6ea3f6c <__libc_system> 0x0 0x84d0 <main>
0xbefffb70: 0xb6ffc718 0xb6ffc400 0x0
およびシステムに侵入した後:
(gdb) x/10a $sp
0xbefffb68: 0x0 0x84d0 <main> 0xb6ffc718 0xb6ffc400
0xbefffb78: 0x0 0x0 0x83bc <_start> 0x0
0xbefffb88: 0x0 0x0
です。何を実行しようとしていますか? ''/bin/sh "'というテキストは?あなたは 'execv()'システムコールを実行する必要があります。質問にさらに情報を追加する必要があります。バイナリでROPガジェット検索ツールを使用しましたか?あなたが選んだものを表示できますか? –
シェルを取得するために、r0に格納された引数 "bin/sh /"を使用して<__ libc_system>を実行しようとしています。ガジェットは手動でgrepを使って見つけました。我々は、不安定なガジェットを含むように投稿を編集する。 – Tesnich