场景:我有一个内部 ASP.NET 站点,允许我维护一组规则 (CRUD)。要添加新规则,我只需填写 HTML 表单并单击提交。我当前的问题是我现在需要添加几百条规则,并且我想使用脚本来自动执行此操作。
初步计划:
- 创建一个可以接受 X 个参数的脚本,并使用这些参数来伪造上述网页的表单提交
- 创建一个逗号分隔的文件(或类似文件),每条规则一行,每一列代表 HTML 表单中的输入标签之一
- 创建另一个脚本,该脚本可以使用逗号分隔文件为每一行执行一次表单提交脚本
我的尝试集中在curl上,并且针对在线测试页面效果很好。不幸的是,我无法让它对 ASP.NET 页面起作用,我猜这与 Postback 和/或 Viewstate 有关系。
片段:
curl -s -u "DOMAIN\user:password" --ntlm -d "key1=value1" -d "key2=value2" http://internal/page.aspx
(像使用 GET 一样返回页面,没有错误消息)
问题:
如何欺骗我正在发送回发的 ASP页面?(也欢迎其他脚本建议)
编辑:
来自 ASP 页面的片段:
<asp:LinkButton ... runat="server" OnClick="lbAddRule_Click" PostBackUrl="~/Page.aspx" />
来自后面代码的片段:
protected void lbAddRule_Click(object sender, EventArgs e) {
if (Page.IsValid == true) {
AddRule(x,y,z);