表單是一個包含表單元素的區域,表單元素是容許用戶在表單中(好比:文本域、下拉列表、單選框、複選框等等)輸入信息的元素,表單在網頁中主要負責數據採集功能,一個表單有三個基本組成部分:表單標籤、表單域、表單按鈕;php
支持HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等衆多腳本語言。html
JavaScript、ASP、PHP、Ruby等腳本語言前端
<html > <head> <meta charset="UTF-8"> <title>網絡攻防</title> </head> <body> <form> <table width="350" bgcolor="#ccffcc" border="1"> <tr align=center> <td>用戶名</td><td><input type="text" name="username" id="username"></td> </tr> <tr align=center><td>密 碼</td><td><input type="password" name="password" id="password"></td></tr> <tr align=center><td colspan="2"><input type="button" value="登 錄" onclick="r();"/> <input type="reset" value="重 置"/></td></tr> </table> </form> </body> </html>
三、頁面效果
java
<html > <head> <meta charset="UTF-8"> <title>網絡攻防</title> <script> function r() { var username=document.getElementById("username"); var pass=document.getElementById("password"); if(username.value=="") { alert("請輸入用戶名"); username.focus(); return; } if(pass.value=="") { alert("請輸入密碼"); return; } return true; } </script> </head> <body> <form> <table width="350" bgcolor="#ccffcc" border="1"> <tr align=center> <td>用戶名</td><td><input type="text" name="username" id="username"></td> </tr> <tr align=center><td>密 碼</td><td><input type="password" name="password" id="password"></td></tr> <tr align=center><td colspan="2"><input type="button" value="登 錄" onclick="r();"/> <input type="reset" value="重 置"/></td></tr> </table> </form> </body> </html>
三、實現的界面:若是沒有輸入帳戶或者密碼都會進行提示
python
輸入use mysql; 選擇mysql數據庫 輸入select user, password, host from user;顯示mysql庫中已有的用戶名、密碼與權限 輸入UPDATE user SET password=PASSWORD("20155218") WHERE user='root';更改用戶名root的密碼 輸入flush privileges;更新權限。 輸入quit退出,從新登陸mysql
create database xzhdb; use xzhdb; create table (username VARCHAR(45),password VARCHAR(256));
insert into xzh(username,password) values('20155218','123456');
<?php echo ($_GET["a"]); include($_GET["a"]); echo "This is xuzhihan php test page!<br>"; ?>
<?php $uname=($_POST["username"]); $pwd=($_POST["password"]); /* echo $uname; */ $query_str="SELECT * FROM xzhtb where username='$uname' and password='$pwd';"; /* echo "<br> {$query_str} <br>";*/ $mysqli = new mysqli("127.0.0.1", "xzh", "20155218", "xzhdb"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> Welcome login Mr/Mrs:{$uname} <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
三、在用戶界面輸入帳號密碼,登陸;
mysql
四、成功;web
一、在用戶名處輸入:sql
admin' or 1=1#
獲得的sql語句是:chrome
select * from users where username='admin' or 1=1#' and password='';
‘#’是註釋符,會把後面的內容都註釋掉,而1=1是永真式,因此這個條件永遠成立。數據庫
三、攻擊成功顯示出你存放的圖片:
python sqlmap.py -d "mysql://root:root@127.0.0.1:3306/DISSchool"
python sqlmap.py -d "mysql://xzh:20155218@127.0.0.1:3306/xzhdb"
在此次試驗中,咱們瞭解到了最基本的sql注入和xss攻擊,在查找關於cookie的記錄中發現解決實際問題的一些方法;我姐姐讓我幫她填問卷(問卷星),一個微信只能填一次,讓我填5個我還得找5我的;接下來我發現我用電腦也能夠投一次,換不一樣的瀏覽器也能夠投一次,說明不是ip綁定,那就是cookie綁定了,可是我檢查網頁元素沒有找到與cookie綁定的語句,因此暫時只能採用填一次問卷清除一次本地緩存的方法;但我有疑惑的是爲何用chrome的無痕瀏覽不能屢次填問卷;