最近学习python,昨晚折腾到半夜。今天想起来也是醉了.
然后今儿拿VC来重新写了一个
//从用户提供的url www.bugscan.net/bug/111 中获取 漏洞id
CRegex reid("www.bugscan.net/bug/(\\d+)");
reid.RegMatch(target);
CBaseSec bugscan("https://www.bugscan.net");
bugscan.init();
//设置http请求头部
bugscan.SetContentType("application/json; charset=UTF-8");
bugscan.SetHttpHeader("Referer: https://www.bugscan.net/");
bugscan.SetCookie("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
//发送获取漏洞信息的请求
CString postdata="{\"method\":\"GetPluginDetail\",\"params\":["+reid.strMat+"]}";
bugscan.PostRequest("/rest",postdata.GetBuffer(0),TRUE);
//获取漏洞描述
CString desc=bugscan.getInfo("\"description\":\"(.*?)\"");
if (desc=="")
{
//无漏洞描述,视此漏洞id无效
return "";
}
//获取漏洞的fname
CString fname=bugscan.getInfo("\"fname\":\"(.*?)\"");
//获取源码
CString source=bugscan.getInfo("\"source\":\"(.*?)\",\"status");
source.Replace("\\\"","\"");
//将源码写入到文件
CString filename="";
filename.Format("%s-%s",reid.strMat,fname);
CStdioFile logtxt(filename,CFile::modeReadWrite | CFile::shareDenyNone | CFile::typeText | CFile::modeCreate | CFile::modeNoTruncate);
logtxt.SeekToEnd();
//要写入的数据
CString data="";
data="#"+desc+"\n\n"+source;
data.Replace("\\r","\r");
data.Replace("\\n","\n");
logtxt.WriteString(data);