Guest User

Untitled

a guest
Dec 20th, 2017
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. if ('POST' eq request_method && param('username') && param('password')){
  2. my $dbh = DBI->connect( "DBI:mysql:natas30","natas30", "<censored>", {'RaiseError' => 1});
  3. my $query="Select * FROM users where username =".$dbh->quote(param('username')) . " and password =".$dbh->quote(param('password'));
  4. my $sth = $dbh->prepare($query);
  5. $sth->execute();
  6. my $ver = $sth->fetch();
  7. if ($ver){
  8. print "win!<br>";
  9. print "here is your result:<br>";
  10. print @$ver;
  11. }
  12. else{
  13. print "fail :(";
  14. }
  15. $sth->finish();
  16. $dbh->disconnect();
  17. }
  18.  
  19. use strict;
  20. use warnings;
  21.  
  22.  
  23. {
  24. package Natas30Clone;
  25.  
  26. use DBI;
  27. use HTTP::Server::Simple::CGI;
  28. our @ISA = qw(HTTP::Server::Simple::CGI);
  29.  
  30. my %dispatch = (
  31. '/login.pl' => &resp_index,
  32. );
  33.  
  34. sub handle_request {
  35. my $self = shift;
  36. my $cgi = shift;
  37.  
  38. my $path = $cgi->path_info();
  39. my $handler = $dispatch{$path};
  40.  
  41. if (ref($handler) eq "CODE") {
  42. print "HTTP/1.0 200 OKrn";
  43. $handler->($cgi);
  44.  
  45. } else {
  46. print "HTTP/1.0 404 Not foundrn";
  47. print $cgi->header,
  48. $cgi->start_html('Nothing to see'),
  49. $cgi->h1('Move along sir'),
  50. $cgi->h2('You can got to localhost:8080/login.pl?username=user&password=pass'),
  51. $cgi->end_html;
  52. }
  53. }
  54.  
  55. sub resp_index {
  56. my $cgi = shift;
  57. return if !ref $cgi;
  58.  
  59. my $dbh = DBI->connect( "DBI:mysql:natas30","root", "toor", {'RaiseError' => 1});
  60.  
  61. my $username = $cgi->param('username');
  62. my $quoted_username = $dbh->quote($username);
  63. my $password = $cgi->param('password');
  64. my $quoted_password = $dbh->quote($password);
  65. my $query="Select * FROM users where username =" . $quoted_username . " and password =" . $quoted_password;
  66.  
  67. my $sth = $dbh->prepare($query);
  68. $sth->execute();
  69. my $ver = $sth->fetch();
  70. if ($ver){
  71. print $cgi->header,
  72. $cgi->start_html("WIN!"),
  73. $cgi->h1(@$ver),
  74. $cgi->h2("You succeeded with query " . $query),
  75. $cgi->h2("Suplied parameters U:" . $username . " P:" . $password),
  76. $cgi->h2("Quoted parameters U:" . $quoted_username . " P:" . $quoted_password),
  77. $cgi->end_html;
  78. } else {
  79. print $cgi->header,
  80. $cgi->start_html("FAIL!"),
  81. $cgi->h2("You failed with query " . $query),
  82. $cgi->h2("Suplied parameters U:" . $username . " P:" . $password),
  83. $cgi->h2("Quoted parameters U:" . $quoted_username . " P:" . $quoted_password),
  84. $cgi->end_html;
  85. }
  86.  
  87. $sth->finish();
  88. $dbh->disconnect();
  89. }
  90. }
  91.  
  92. my $pid = Natas30Clone->new(8080)->background();
  93. print "Use 'kill $pid' to stop server.n";
  94.  
  95. +---------+----------+
  96. | user | password |
  97. +---------+----------+
  98. | natas30 | natas30 |
  99. +---------+----------+
  100.  
  101. import requests
  102. session = requests.Session()
  103.  
  104. def natas30(url):
  105. params={"username": "natas30", "password": "natas30"}
  106. response = session.post(url, data=params)
  107. print(response.text)
  108.  
  109. if __name__ == '__main__':
  110. url = 'http://localhost:8080/login.pl'
  111. natas30(url)
  112.  
  113. <!DOCTYPE html
  114. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  115. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  116. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
  117. <head>
  118. <title>WIN!</title>
  119. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  120. </head>
  121. <body>
  122. <h1>natas30 natas30</h1>
  123. <h2>You succeeded with query Select * FROM users where username ='natas30' and password ='natas30'</h2>
  124. <h2>Suplied parameters U:natas30 P:natas30</h2>
  125. <h2>Quoted parameters U:'natas30' P:'natas30'</h2>
  126. </body>
  127. </html>
Add Comment
Please, Sign In to add comment