JavaScript shell的使用

JavaScript shell 是一个可以在shell 命令行下执行js脚本的命令。好像没啥用处,要执行什么任务,大把的编程语言可以搞定,为啥要这东西呢?小众东西有小众用途,这个的功效当然是特殊情况下使用了。阿权找JavaScript shell这个东西,是碰到了一个问题:下载某个网站的图片,图片加了防盗链,防盗链的做法很新奇,用js计算出验证码,然后用新的地址访问即可正常。既然这样,如何破?1 把算法用php重新做一遍。这个比较费力,脚本写的还很复杂,每次都换2 用shell执行脚本,得到需要的结果。一 安装JavaScript shell下载编译好的二进制吧:Nightly Builds解压即可使用二 做个脚本测试一下:

alert("test");运行一下

引用

./js a.js a.js:1:0 ReferenceError: alert is not defined这个问题的发生,也就了解了它的局限性,不是每个脚本函数都支持的,内置功能可以阅读文章后面的参考文章。看到这个情况,很容易产生一个做法,定义alert就好,是吧?在a.js里加上

function alert(str){ print(str);}我们可以看到,shell里有输出test这个就正常了,逐步调试就可以知道对方脚本调用了什么对象,定义并且输出到命令行即可。比如:a.js:2:0 ReferenceError: window is not defined肯定是调用了 window.xxx 的方法了,我们定义一个window对象var window = {};加入脚本前头,再执行:a.js:3:0 TypeError: window.open is not a function修改window对象为:var window = {open:function(url){print(url);}};这个就把打开的网址给打印出来啦,任务完成三 用途:php在获取了脚本后,匹配出脚本内容,在内容前加上刚才window的定义用shell执行脚本内容,获得跳转地址,重新下载附送正则表达式参考:

preg_match("/<script>(((?!<\/script>).)+)<\/script>/i", $data, $matches);四 linux下如果提示这个

./js: symbol lookup error: ./js: undefined symbol: PR_SetCurrentThreadName那可以安装需要的东西:

yum -y install nspr firefox xulrunner五 参考内容:Introduction to the JavaScript shell不包含某字符串的字符串匹配 (正则表达式)使用正则表达式找出不包含特定字符串的条目

JavaScript shell的使用

相关文章:

你感兴趣的文章:

标签云: