SQLInjection

北京最正规看白癜风医院 https://baike.baidu.com/item/%E5%8C%97%E4%BA%AC%E4%B8%AD%E7%A7%91%E7%99%BD%E7%99%9C%E9%A3%8E%E5%8C%BB%E9%99%A2/9728824?fr=aladdin

郑重声明:

本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用课程中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

1SQLInjection概述

服务器端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回给客户端浏览器;

SQLInjection主要危害有:

榨取数据;

执行系统命令;

向数据库插入代码;

绕过登录验证。

2环境准备2.1下载靶机

metasploitable-linux-2.0.0.zip

2.2安装靶机

此处忽略,自行百度:虚拟机安装Metasploitable2系统教程

2.3修改dvwa下的login.php文件

//修改if条件语句如下:if(isset(_POST[Login])){//user=_POST[username];user=stripslashes(user);user=mysql_real_escape_string(user);pass=_POST[password];/*注释以下内容pass=stripslashes(pass);//stripslashes()函数删除反斜杠pass=mysql_real_escape_string(pass);//mysql_real_escape_string()函数转义SQL语句中使用的字符串中的特殊字符。//受影响字符:\x00,\n,\r,\,,",\x1a//如果成功,则该函数返回被转义的字符串。如果失败,则返回false。pass=md5(pass);//md5()函数计算字符串的MD5散列。*/qry="SELECT*FROM`users`WHEREuser=userANDpassword=pass;";result=

mysql_query(qry)ordie(pre.mysql_error()./pre);//if(resultmysql_num_rows(result)==1){//LoginSuccessful...//注释以上内容并复制,修改如下://mysql_num_rows(result)!=0执行登陆绕过时,sql结果为真,将打印出所有表内数据,此时行数可能会大于1。if(resultmysql_num_rows(result)!=0){//LoginSuccessful...dvwaMessagePush("Youhaveloggedinas".user."");dvwaLogin(user);dvwaRedirect(index.php);}//Loginfailed1dvwaMessagePush("Loginfailed");dvwaRedirect(login.php);}3SQLInjection绕过登陆验证测试

在不知道用户名或密码的情况下,通过SQLInjection绕过登陆验证。直接在密码输入框中写入以下内容(用户名可写可不写):

OR1=14low等级下SQLInjection检测方法测试

将DVWASecurity等级修改为:low

通过上面SQLInjection绕过登陆验证测试进入DVWA主界面下后,选择SQLInjection菜单

4.1正常数据查询

在UserID下输入1,测试查询UserID为1的数据,输出如下:

ID:1Firstname:adminSurname:admin

观察:此时浏览器URL变为:


转载请注明:http://www.kelongbinga.com/klsm/7042.html

  • 上一篇文章:
  •   
  • 下一篇文章: