标签:大小写 cat base insert sqli block 长度 onclick 超过
sudo apt-get install apache2
service apache2 start
netstat -tupln |grep 80
命令查看80端口是否被占用,如果已被占用,修改配置文件ports.conf中的内容以修改监听端口vim /etc/apache2/ports.conf
service apache2 restart
vi /var/www/html/test.txt
6.准备一个能提交用户名密码的login.html页面并放到路径/var/www/html
下,里面写以下代码(建议在主机生成html文件再放入虚拟机)
<html>
<head>
<script>
function inputTest(){
if (document.getElementById("password").value.length>4){
return true
} else {
return false;
}
}
function inputname(){
username = document.getElementById("username");
if(username.value=="Please Input Your Username"){
username.value = "";
username.style.color = "Black";
}
}
function nameempty(){
username= document.getElementById("username")
if(username.value == ""){
username.value = "Please Input Your Username";
username.style.color = "Gray";
}
}
</script>
</head>
<body>
Please Input Your Name and Password to login
<form action="login.php" method="GET" onsubmit="return inputTest()">
<input type="text" name="username" id="username" value="Please Input Your Username" onclick="inputname()" style="color: Gray;" onblur="nameempty()" /> <br>
<input type="password" name="password" id="password"/> <br>
<input type="submit" value="Login GET"/>
</form>
<br>
<br>
</body>
</html>
7.安装PHP
sudo apt-get install php
8.测试PHP是否能正常工作
vi /var/www/html/test.php
内容为
<?php
include($_GET["a"]);
?>
浏览器打开 127.0.0.1:8088/test.php?a=/etc/passwd9.尝试获取表单数据/var/www/html/login.php
,内容为
<!DOCTYPE html>
<html>
<body>
<?php
$uname=($_GET["username"]);
$pwd=($_GET["password"]);
echo "username:";
echo $uname;
echo "<Br>password:";
echo $pwd;
?>
</body>
</html>
在访问刚刚的login.html页面进行登录
下面尝试使用POST方法
将login.html和login.php中的GET都改成POST就行了
通过比较可以看出,get方法直接将参数放在url中,而post方法将参数放在HTML Header内提交,所以提交敏感数据应该使用post方法,,
10.安装mysql
apt-get install mysql-server mysql-client mysql-workbench
失败了,试了网上各种方法都不行。。
最后按着网上的说法直接输入命令service mysql start
,再输入mysql -u root -p
登录,默认密码为空,结果发现打开的是MariaDB。。网上说是mysql的一个分支balabala,不管了先用着
查看基本信息show databases;
(每个命令后面记得分号结束)
还行,用起来好像差不多
修改密码
UPDATE mysql.user SET authentication_string = PASSWORD(‘新的密码‘), plugin = ‘mysql_native_password‘ WHERE User = ‘root‘ AND Host = ‘localhost‘;
注意,这里跟mysql不太一样,如果不这么写后面会出错
然后依次输入以下内容(我的名字用的lzj,各位根据自己情况修改)
CREATE SCHEMA `lzj`;
CREATE TABLE `lzj`.`users` (
`userid` INT NOT NULL COMMENT ‘‘,
`username` VARCHAR(45) NULL COMMENT ‘‘,
`password` VARCHAR(256) NULL COMMENT ‘‘,
`enabled` VARCHAR(5) NULL COMMENT ‘‘,
PRIMARY KEY (`userid`) COMMENT ‘‘);
use lzj
insert into users(userid,username,password,enabled) values(1,‘admin‘,password("admin"),"TRUE");
最后可以看到
11.php+mysql实践
安装开发库
apt-get install php-mysql php-mysqli
然而好像已经有了不用安装
可以通以下指令确认mysql mysqli的安装结果。
#locate mysql.so
#locate mysqli.so
将刚刚的login.php改为以下内容
<!DOCTYPE html>
<html>
<body>
<?php
$uname=($_GET["username"]);
$pwd=($_GET["password"]);
/* echo $uname; */
$query_str="SELECT * FROM users where username=‘{$uname}‘ and password=password(‘{$pwd}‘);";
/* echo "<br> {$query_str} <br>";*/
$mysqli = new mysqli("127.0.0.1", "root", "你的密码", "刚刚创建的SCHEMA的名字");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
if ($result->num_rows > 0 ){
echo "<br> Wellcome login Mr/Mrs:{$uname} <br> ";
} else {
echo "<br> login failed!!!! <br> " ;
}
/* free result set */
$result->close();
}
$mysqli->close();
?>
</body>
</html>
11.简单sql注入
用户名处输入‘ or 1=1#
,密码任意,长度超过4就行
成功登陆,下面尝试添加用户
用户名处输入
‘;insert into users(userid,username,password,enabled) values(5222,‘abc‘,password("123456"),"TRUE");#
查看用户表中内容,已经添加了新用户在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了,但是得修改一下之前的代码,因为我们之前的login.php中
if ($result = $mysqli->query($query_str))
这条判断语句不允许多条sql语句执行,所以将它改成if ($result = $mysqli->multi_query($query_str))
便能实现执行多个sql语句
以上这段话引用自冯佳学姐博客,鸣谢冯家学姐让我跳过一个坑
12.简单xss
用户名输入<img src="xingkong.jpg">
,密码还是随意,登陆之后就会回显这张图片
当然这张图片是预先放在/var/www/html目录下的,这个操作是什么意思呢,当我们输入<img src="xingkong.jpg">
时,本来应该以文本的形式回显,但是网站把他当成一句代码来处理,假设我们在一个帖子的回复中插入一段恶意的js代码,那么这段代码将被服务器存储,并在其他用户浏览相应网页时被加载,且这段恶意代码并没有以文本的形式显示,而是被执行,那么将产生不好的后果,,实际操作待续。。
标签:大小写 cat base insert sqli block 长度 onclick 超过
原文地址:https://www.cnblogs.com/20155222lzj/p/9038850.html