c# post发帖机源码
2010-04-28 18:10:00 Nanjim 阅读数 904

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using org.in2bits.MyXls;
using System.Runtime.InteropServices;
using System.IO;
using Microsoft.Win32.SafeHandles;
namespace WebTouch
{
   public partial class products_cart : System.Web.UI.Page
   {
     
       const uint GENERIC_READ =0x80000000;
       const uint GENERIC_WRITE = 0x40000000;      
       const int OPEN_EXISTING = 3;
       private FileStream fs=null;
       [DllImport("kernel32.dll")]
       public static externIntPtr CreateFileA(string lpFileName, uint dwDesiredAccess, intdwShareMode, int lpSecurityAttributes, int dwCreationDisposition, intdwFlagsAndAttributes, int hTemplateFile);
   
       protected void Page_Load(object sender, EventArgs e)
       {
           if (!this.IsPostBack)
           {
               if (!this.Request.IsAuthenticated)
               {
                   string str = Request.Url.ToString();
                   string url = "myinfo_login.aspx?RetUrl=" + str + "";
                   //string url = "myinfo_login.aspx";
                   Jscript.JavaScriptLocationHref(url);
               }
               else
               {
                   Bind();
               }
               string name = "";
               if (Request.IsAuthenticated)
               {
                   name = User.Identity.Name;
               }
               else
               {
                   name = "未注册用户";
               }
               string Reurl = Request.RawUrl.ToString();
               TJ t = new TJ();
               if (t.addTG(name, Reurl) == true)
               {
                   //Jscript.JavaScriptLocationHref(url + "&TJ=1");
               }

           }
       }
       private void Bind()
       {
           ShopCart mycart = CartCtroller.GetCart();
           bandToData(AspNetPager2, mycart, this.rpdata);  
       }
     
       private void bandToData(Wuqi.Webdiyer.AspNetPager anp,ArrayList ar,  Repeater ppt)
       {
           anp.RecordCount = ar.Count;
           PagedDataSource pds = new PagedDataSource();
           pds.DataSource = ar;
           pds.AllowPaging = true;
           pds.CurrentPageIndex = anp.CurrentPageIndex - 1;
           pds.PageSize = anp.PageSize;
           ppt.DataSource = pds;
           ppt.DataBind();
       }
       protected void AspNetPager1_PageChanged(object sender, EventArgs e)
       {
           Bind();
       }
       protected void Submit1_ServerClick(object sender, EventArgs e)
       {
         
           del();
           Jscript.JavaScriptLocationHref("products_cart.aspx");
       }
       private void del()
       {
           ShopCart mycart = null;
           foreach (Control c in this.rpdata.Controls)
           {
               HtmlInputCheckBox cbx = (HtmlInputCheckBox)c.FindControl("Item");
               //CheckBox cbx = (CheckBox)c.FindControl("cbxId");
               if (this.CheckAll.Checked == true || this.checkAllall.Checked == true)
               {
                   CartCtroller.CleanCart();
                   mycart = CartCtroller.GetCart();
                   mycart.Clear();
                   return;
               }
               else
               {
                   if (cbx != null)
                   {
                       if (cbx.Checked == true)
                       {
                           int T_id = int.Parse(cbx.Value);
                           if (T_id >= 0)
                           {
                               mycart = CartCtroller.GetCart();
                               //mycart.RemoveRange(
                               mycart.RemoveAt(T_id);
                               //Bind();
                           }
                           else
                           {
                               return;
                           }
                       }
                   }
               }
           }
           CartCtroller.StoreCart(mycart);
       }
           
       protected void imageButton1_Click(object sender, ImageClickEventArgs e)
       {
           PrintESC(0);
           ShopCart mycart = CartCtroller.GetCart();
           IntPtr iHandle;
          iHandle = CreateFileA("LPT1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
          if (iHandle.ToInt32() == -1)
          {
              Jscript.AjaxRunJs(this.Page, "alert('没有连接打印机或者打印机端口不是LPT1!')");
              return;
          }
          else
          {              
              fs = new FileStream(iHandle, FileAccess.ReadWrite);
              StreamReader sr = new StreamReader(fs);   //读数据;  
              StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);  //些数据;  
              if (mycart.Count == 0)
              {
                  Jscript.AjaxRunJs(this.Page, "alert('请先购买产品!')");
                  return;
              }
           
              for (int i = 0; i < mycart.Count; i++)
              {
                  modelArrayProduct temp = (modelArrayProduct)mycart[i];
                  string name = "产品名称:" + temp.T_name;
                  string miaoshu = "产品描述:" + temp.T_miaoshu;
                  string shuliang = "购买数量:" + temp.T_shuliang.ToString() + "支";
                 
                 
                  //fs.WriteByte(0x0A);
                  sw.WriteLine(name);
                  sw.WriteLine(miaoshu);
                  sw.WriteLine(shuliang);
                  sw.WriteLine("-------------------------------");
                  PrintESC(1);
                 
                 
              }
              sw.Close();
              fs.Close();
           
          }
       
          //PrintESC(2);
          //PrintESC(2);
          //PrintESC(2);
          //PrintESC(2);
          //PrintESC(2);
       }
       //打印前退纸 0
       //打印
       //打印后进纸1
         /// <summary>
       /// ESC/P 指令
       /// </summary>
       /// <param name="iSelect">0:退纸命令 1:进纸命令 2:换行命令</param>
       public void PrintESC(int iSelect)
       {
           string send;
           IntPtr iHandle;
         
           iHandle = CreateFileA("LPT1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
           if (iHandle.ToInt32() == -1)
           {
               Jscript.AjaxRunJs(this.Page, "alert('没有连接打印机或者打印机端口不是LPT1!')");
               return;              
           }
           else
           {
                fs = new FileStream(iHandle, FileAccess.ReadWrite);
           }
         
         
           byte[] buf = new byte[80];
           switch (iSelect)
           {
               case 0:
                   send = "" + (char)(27) + (char)(64) + (char)(27) + 'j' + (char)(255);    //退纸1 255 为半张纸长
                   send = send + (char)(27) + 'j' + (char)(125);    //退纸2
                   break;
               case 1:
                   send = "" + (char)(27) + (char)(64) + (char)(27) + 'J' + (char)(255);    //进纸
                   break;
               //case 1:
               //    send = "" +(char)(64) + (char)(64) + (char)(64) + (char)(64) + 'J' +(char)(255);   //进纸                  
               //    break;
               case 2:
                   send = "" + (char)(27) + (char)(64) + (char)(12);   //换行
                   break;
               default:
                   send = "" + (char)(27) + (char)(64) + (char)(12);   //换行
                   break;
           }
           for (int i = 0; i < send.Length; i++)
           {
               buf[i] = (byte)send[i];
           }
           fs.Write(buf, 0, buf.Length);
           fs.Close();
       }

   }
}

2016-10-20 23:13:00 weixin_34306593 阅读数 1

 

总结:

loginhash formhash  表单参数

seccode 参数最重要 全局 的 获取验证码 判断验证码 到最后提交登录 它都有存在 ,seccode==idhash

COOKIE自动维护我就不多讲了,自己看demo吧。

 

下载地址:http://www.test404.com/post-1035.html

转载于:https://www.cnblogs.com/testsec/p/5983037.html

2016-10-20 23:13:00 weixin_34253539 阅读数 23

 

总结:

loginhash formhash  表单参数

seccode 参数最重要 全局 的 获取验证码 判断验证码 到最后提交登录 它都有存在 ,seccode==idhash

COOKIE自动维护我就不多讲了,自己看demo吧。

 

下载地址:http://www.test404.com/post-1035.html

2008-11-18 20:24:00 vrix 阅读数 2905
 private string Post(string url, string postdata)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = postdata.Length;
myHttpWebRequest.Method = "POST";
myHttpWebRequest.CookieContainer = myCookieContainer;

Stream myRequestStream = myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postdata);

myStreamWriter.Close();
myRequestStream.Close();

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);

Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));

string outdata = myStreamReader.ReadToEnd();

myStreamReader.Close();
myResponseStream.Close();

return outdata;

}

private string Post2(string url, string postdata)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer = myCookieContainer;//*
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
string outdata = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return outdata;
}
问题补充:发帖代码:
richTextBox1.Text = Post("http://test.cn/logging.php?action=login&loginsubmit=true", "formhash=f0adc463&cookietime=2592000&loginfield=username&username=admin&password=admin&userlogin=%B5%C7%C2%BC");
richTextBox1.Text = Post2("http://test.cn/post.php?action=newthread&fid=2&extra=&topicsubmit=yes", @"formhash=7219d72f&isblog=&frombbs=1&readperm=0&price=0&subject=测试标题&iconid=0&message=测试内容&attach[]=&filename=&localid[]=&attachperm[]=0&attachprice[]=0&attachdesc[]=&attach[]=&filename='C:/Documents and Settings/Administrator/My Documents/新建文件夹/1.jpg'");

测试后登陆能够成功,但是发帖会出现“您的请求来路不正确或验证字串不符,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。”的错误,请问怎么解决?
2017-10-15 19:59:15 AmazingDlt 阅读数 314
 /*说明,本次记录仅限于技术研究交流,其他任何事物与本人无关*/
   拿到软件,第一步习惯性的打开看看,看到软件目录 有个 Interop.MSScriptControl.dll ,基本上十之八九是.net写的软件,至于是c#或者是vb.net,首先就搁在一边了,然后打开软件,大概几秒钟后,弹出对话框,机器码已经复制到剪辑版,猜测是联网进行了验证,然后看了一下机器码,大概是获取了cpu或者磁盘序号,进行到这里,既然猜测是网络验证,下一步就是用抓包工具,看看他发了什么包,打开抓包工具Srsniffer,勾选行钩子,然后打开待分析的软件,可以看到是tcp协议,端口1433,看到这个熟悉的端口,就想到了是连接的远程数据库,当然封包看起来是乱码,也有一部分是明文,从明文当中可以判断连接的数据库地址为一个域名,当然这也只是猜测,我们需要去测试。进行到这一步,咱们攻克这个软件的整个思路就有了。他的流程猜测是这样,获取机器的硬件特征,然后连接数据库查询是否有信息,如果存在的话,验证成功,否则失败。那么,到这一步,我们大概知道了他连接的数据库地址,还需要一个帐号密码才有可能连上他的数据库进行操作。帐号密码怎么找呢,net写的软件 ,大家都知道可以反编译,我们先拖到OD,脱到OD发现,软件是加了壳子的,并且是一个商业的sp壳子,咱们总是想寻求一个巧妙的方法来简化软件分析时间,脱壳然后反编译,然后在源码里找到数据库的帐号密码,这么做完全是可以的,但是费时费力,分析过程十分痛苦。那么咱们就思考一下,软件可以载入OD,字符串是有的,连接数据库的时候是带用户名和密码,那么有没有可能数据库帐号和密码和连接地址放在一块呢,答案是肯定的,如果说他这个不加密的话,不出意外是在一起的,然后OD跑起来,打开内存窗口,搜索Unicode的连接地址,很快找到了可疑的东西,然后咱们记录一下,打开navicat,连接试试,OK成功进去,然后找到相关的数据库,打开数据表,增加咱自己电脑的硬件信息,到期时间等,保存,然后再一次打开软件,OK,成功进入。。
    以上分析可见,作者把重心放到商业壳子上面,防止别人反编译,但是网络验证这一块做的确实很鸡肋,直连数据库就是很傻瓜的做法,改善的方法也很明确,根据咱们的分析过程,他可以把连接信息加密一下,就增加了分析的难度和成本。







C# post

阅读数 1261

C# POST

阅读数 92

http://bbs.msdn5.com/thread-11-1-1.html

博文 来自: xyx987978020
没有更多推荐了,返回首页