Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. #! /usr/bin/perl
  2.  
  3. use v5.10;
  4. use strict;
  5. use warnings;
  6. use LWP::UserAgent;
  7. use HTTP::Cookies;
  8. use Data::Dumper;
  9.  
  10. my $cookie_jar = HTTP::Cookies->new('ignore_discard' => 0, 'autosave' => 1,);
  11. my $ua = LWP::UserAgent->new(ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE'});
  12. my $req;
  13. my $response;
  14. my $code = -1;
  15. my $date = `date`;
  16.  
  17. $ua->timeout(10);
  18. $ua->cookie_jar($cookie_jar);
  19. $ua->agent("Wget/1.12 (linux-gnu)");
  20.  
  21. $req = new HTTP::Request( POST => 'https://qualysguard.qg2.apps.qualys.com/api/2.0/fo/session/');
  22. $req->header('X-Requested_with' => 'CounterACT Qualys VM plugin request');
  23. $req->content_type('application/x-www-form-urlencoded');
  24. $req->content('action=login&username=fresc2lc&password=KsEb95ucre');
  25. $response = $ua->request($req);
  26.  
  27. $code = scalar($response->code);
  28. if ($code != 200) {
  29. print("Failed to login!\n");
  30. exit(1)
  31. }
  32.  
  33. print("$date\n");
  34. test_api("Asset API", "asset/ip");
  35. print("\n");
  36.  
  37. test_api("Scan API", "scan");
  38. print("\n");
  39.  
  40. test_api("Report API", "report");
  41.  
  42. sub test_api {
  43. my $name = shift;
  44. my $api = shift;
  45. my $path = "https://qualysguard.qg2.apps.qualys.com/api/2.0/fo/$api/";
  46.  
  47. $req = new HTTP::Request( POST => "$path");
  48. $req->header('X-Requested_with' => 'CounterACT Qualys VM plugin request');
  49. $req->content_type('application/x-www-form-urlencoded');
  50. $req->content('action=list');
  51.  
  52. $response = $ua->request($req);
  53. my $x_ratelimit_limit = $response->header('x-ratelimit-limit');
  54. my $x_ratelimit_remaining = $response->header('x-ratelimit-remaining');
  55.  
  56. print("Testing $name:\n");
  57. print " x_ratelimit_limit=$x_ratelimit_limit\n";
  58. if ($x_ratelimit_remaining == 0) {
  59. print " x_ratelimit_remaining=$x_ratelimit_remaining (blocked)\n";
  60. } elsif ($x_ratelimit_remaining < 30) {
  61. print " x_ratelimit_remaining=$x_ratelimit_remaining (extreme caution)\n";
  62. } elsif ($x_ratelimit_remaining < 100) {
  63. print " x_ratelimit_remaining=$x_ratelimit_remaining (caution)\n";
  64. } else {
  65. print " x_ratelimit_remaining=$x_ratelimit_remaining (OK)\n";
  66. }
  67. }
  68.  
  69. $req = new HTTP::Request( POST => 'https://qualysapi.qualys.com/api/2.0/fo/session/');
  70. $req->header('X-Requested_with' => 'CounterACT Qualys VM plugin request');
  71. $req->content_type('application/x-www-form-urlencoded');
  72. $req->content('action=logout');
  73. $response = $ua->request($req);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement