public async Task NewScanTest() { ArachniApi api = new ArachniApi(Address); string result = await api.NewScan(PostRequest.Create("http://testhtml5.vulnweb.com")); Assert.IsNotNull(result); }
private void BtnDoIt_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; ReturnResult.Invoke(PostRequest.Create(CmbxPrjSrce.Text, CmbxPkgListSrce.Text, CmbxPrjDest.Text, CmbxPkgListDest.Text, TxtMess.Text)); Cursor = Cursors.Default; }
protected override async Task <object> Run_Internal(IObserver observer, string asset, IScanRepository repository, object args) { ReportResponse ret = null; if (!String.IsNullOrEmpty(asset) && args is IDictionary <string, object> dic) { string arachniRestApiAddress = dic[nameof(arachniRestApiAddress)]?.ToString(); if (!String.IsNullOrEmpty(arachniRestApiAddress)) { ArachniApi api = new ArachniApi(arachniRestApiAddress); string id = await api.NewScan(PostRequest.Create(asset)); if (!String.IsNullOrEmpty(id)) { while (true) { await Task.Delay(1000); SummaryResponse summary = await api.GetSummary(id); if (null != summary && null != summary.Status) { observer?.Notify("Arachni_" + asset, $"Status: {summary.Status}, request: {summary.Statistics?.Http?["request_count"]}, runtime: {summary.Statistics?.Runtime}", null); if (summary.Status == "done") { ret = await api.GetReport(id); observer?.Notify("Arachni_" + asset, $"{asset} scan has been completed", null); break; } } else { break; } } } } } return(ret); }
/// <summary> /// Creates a new post in the specified thread with the current token user as the author. /// Requires <see cref="APIPermission.POSTSWRITE" /> /// <summary> /// <param name="forumId">The thread id.</param> /// <param name="message">The message to post.</param> public PostResult PostCreate(int forumId, string message) => PostRequest.Create(Client, forumId, message);