-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1224 lines (858 loc) · 67.5 KB
/
index.html
File metadata and controls
1224 lines (858 loc) · 67.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta charset="utf-8" />
<meta name="description" content="Limbus的个人博客" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
/>
<title> Limbus' Blog</title>
<meta name="generator" content="hexo-theme-ayer">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/H-Limbus/h-limbus.github.io@latest/favicon.png" />
<link rel="stylesheet" href="/dist/main.css">
<link rel="stylesheet" href="/css/fonts/remixicon.css">
<link rel="stylesheet" href="/css/custom.css">
<script src="https://cdn.staticfile.org/pace/1.2.4/pace.min.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?afbc0b35e48d80d18aee387ad0d30121";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@sweetalert2/theme-bulma@5.0.1/bulma.min.css"
/>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.19/dist/sweetalert2.min.js"></script>
<!-- mermaid -->
<style>
.swal2-styled.swal2-confirm {
font-size: 1.6rem;
}
</style>
<link rel="alternate" href="/atom.xml" title="Limbus' Blog" type="application/atom+xml">
</head>
</html>
</html>
<body>
<div id="app">
<canvas width="1777" height="841"
style="position: fixed; left: 0px; top: 0px; z-index: 99999; pointer-events: none;"></canvas>
<main class="content on">
<section class="cover">
<a class="forkMe" href="https://github.com/H-Limbus"
target="_blank"><img width="149" height="149" src="/images/forkme.png"
class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1"></a>
<div class="cover-frame">
<div class="bg-box">
<img src="/images/background3.jpg" alt="image frame" />
</div>
<div class="cover-inner text-center text-white">
<h1><a href="/">Limbus' Blog</a></h1>
<div id="subtitle-box">
<span id="subtitle"></span>
</div>
<div>
</div>
</div>
</div>
<div class="cover-learn-more">
<a href="javascript:void(0)" class="anchor"><i class="ri-arrow-down-line"></i></a>
</div>
</section>
<script src="https://cdn.staticfile.org/typed.js/2.0.12/typed.min.js"></script>
<!-- Subtitle -->
<script>
try {
var typed = new Typed("#subtitle", {
strings: ['矮人看戏何曾见,都是随人说长短', '去吹吹风吧,能清醒的话,感冒也没关系', '加油,奋斗'],
startDelay: 0,
typeSpeed: 200,
loop: true,
backSpeed: 100,
showCursor: true
});
} catch (err) {
console.log(err)
}
</script>
<div id="main">
<section class="outer">
<div class="notice" style="margin-top:50px">
<i class="ri-heart-fill"></i>
<div class="notice-content" id="broad"></div>
</div>
<script type="text/javascript">
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
document.getElementById("broad").innerHTML = data.hitokoto;
})
.catch(console.error)
</script>
<style>
.notice {
padding: 20px;
border: 1px dashed #e6e6e6;
color: #969696;
position: relative;
display: inline-block;
width: 100%;
background: #fbfbfb50;
border-radius: 10px;
}
.notice i {
float: left;
color: #999;
font-size: 16px;
padding-right: 10px;
vertical-align: middle;
margin-top: -2px;
}
.notice-content {
display: initial;
vertical-align: middle;
}
</style>
<article class="articles">
<article
id="post-从0到1:CTFer成长之路/从0到1:CTFer成长之路-第一章 Web入门"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/26/%E4%BB%8E0%E5%88%B01%EF%BC%9ACTFer%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF/%E4%BB%8E0%E5%88%B01%EF%BC%9ACTFer%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF-%E7%AC%AC%E4%B8%80%E7%AB%A0%20Web%E5%85%A5%E9%97%A8/"
>从0到1:CTFer成长之路-第一章 Web入门
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/26/%E4%BB%8E0%E5%88%B01%EF%BC%9ACTFer%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF/%E4%BB%8E0%E5%88%B01%EF%BC%9ACTFer%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF-%E7%AC%AC%E4%B8%80%E7%AB%A0%20Web%E5%85%A5%E9%97%A8/" class="article-date">
<time datetime="2023-05-26T08:35:45.096Z" itemprop="datePublished">2023-05-26</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BB%8E0%E5%88%B01%EF%BC%9ACTFer%E6%88%90%E9%95%BF%E4%B9%8B%E8%B7%AF/">从0到1:CTFer成长之路</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h3 id="0x00-信息收集"><a href="#0x00-信息收集" class="headerlink" title="0x00 信息收集"></a>0x00 信息收集</h3><h4 id="1-分类"><a href="#1-分类" class="headerlink" title="1. 分类"></a>1. 分类</h4><h6 id="1-1敏感目录泄露"><a href="#1-1敏感目录泄露" class="headerlink" title="1.1敏感目录泄露"></a>1.1敏感目录泄露</h6><p>(1)git泄露</p>
<ol>
<li>常规git 泄露<br>参赛者通过运用现成工具或者编写的脚本即可获取网站源码或flag</li>
<li>git回滚<br>当题目存在git 泄露时,flag(敏感)文件可能在修改中被删除或覆盖了,利用git reset命令来恢复到以前的版本。除了使用 git reset,更简单的方式是通过 git log-stat 命令查看每个commit修改了哪些文件,再用git diff HEAD commit-id 比较在当前版本与想查看的commit 之间的变化。</li>
<li>git 分支<br>可以使用git log 查看在当前分支上的修改,现在大多数现成的git泄露工具都不支持分支,有一款叫GitHacker的工具可以使用,链接是:<a target="_blank" rel="noopener" href="https://github.com/WangYihang/GitHacker%E3%80%82%E4%BD%BF%E7%94%A8%E6%97%B6%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%60python">https://github.com/WangYihang/GitHacker。使用时执行命令`python</a> GitHacker.py <a target="_blank" rel="noopener" href="http://127.0.0.1:8000/.git/%60">http://127.0.0.1:8000/.git/`</a> 。运行后,我们在本地可以看到生成的文件夹,进入后执行git log –all 或者git branch -v ,只能看到master分支的信息。如果执行git reflog 命令,就可以看到一些checkout 的记录。</li>
<li>git 泄露的其他利用<br>如.git/config 文件夹中可能含有access_token信息,从而访问这个用户的其他仓库。<br>(2) SVN泄露<br>SVN也是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范将SVN隐藏文件夹暴露在外网环境,可以利用.svn/entries或者wc.db文件获取服务器源码等信息。推荐工具:<a target="_blank" rel="noopener" href="https://github.com/kost/dvcs-ripper,Seay-svn">https://github.com/kost/dvcs-ripper,Seay-svn</a> 。<br>(3)HG泄露<br>在初始化项目时,HG会在当前文件夹下创建一个.hg隐藏文件夹,其中包含代码和分支修改记录等信息。推荐工具: <a target="_blank" rel="noopener" href="https://github.com/kost/dvcs-ripper">https://github.com/kost/dvcs-ripper</a> 。<br>(4)总结经验<br>CTF线上比赛往往会有重定向问题,只要访问.git,便会返回403,此时试探访问.git/config,如果有文件内容返回,就说明存在git泄露,反之不存在。</li>
</ol>
<h6 id="1-2-敏感备份文件"><a href="#1-2-敏感备份文件" class="headerlink" title="1.2 敏感备份文件"></a>1.2 敏感备份文件</h6><p>(1)gedit备份文件<br> 在linux中,用gedit编辑器保存后,当前目录下会生成一个后缀为<code>~</code>的文件,其内容就是刚编辑的内容,假设刚才保存的文件名为flag,则该文件名为flag~,通过浏览器访问即可得到源码。</p>
<p>(2)vim 备份文件<br> 当用户使用vim编辑时,如果意外退出,会在当前目录下生成一个备份文件,文件格式为 .文件名.swp,该文件用来备份缓冲区中的内容即退出时的文件内容,针对这个备份文件,我们可以使用 vim -r 命令恢复文件的内容。</p>
<p>(3)常规文件<br> 包括 <code>robots.txt ,readme.md ,www.zip/rar/tar.gz</code> 等文件,主要要依靠字典的强度。</p>
<p>(4)总结经验<br>在CTF线上比赛中,出题人往往会在线运维题目,有时会因为各种情况导致SWP备份文件的生成,所以在比赛过程中可以编写实时监控脚本,对题目服务进行监控。<br>vim 在第一次意外退出时生成备份文件*.swp,第二次为*.swo,第三次为*.swn,以此类推,vim官方文档中还有*.un.文件名.swp类型的备份文件。<br>在实际环境中,网站的备份往往是网站域名的压缩包。</p>
<h6 id="1-3-Banner识别"><a href="#1-3-Banner识别" class="headerlink" title="1.3 Banner识别"></a>1.3 Banner识别</h6><p>一个网站的banner信息(服务器对外显示的一些基础信息)对解题有很重要的作用,也可以叫指纹,包括一些CMS框架的漏洞,可以网上直接搜索利用。<br>(1)自行搜集指纹库<br>Github中有大量成型公开的CMS指纹库,包括一些扫描的工具。<br>(2)使用已有的工具<br>例如 Wappalyer工具,不仅有python版,还有浏览器插件<br>(3)总结经验<br>在进行服务器的Banner信息探测时,除了通过上述两种常见的识别方式,可以尝试随意输入一些URL,有时可以通过错误信息显示更多的信息。</p>
<h3 id="0x01-CTF中的SQL注入"><a href="#0x01-CTF中的SQL注入" class="headerlink" title="0x01 CTF中的SQL注入"></a>0x01 CTF中的SQL注入</h3><p> SQL 注入之前专门写过,请 <a href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/SQL%E6%B3%A8%E5%85%A5/">点击这里</a></p>
<h3 id="0x02-任意文件读取漏洞"><a href="#0x02-任意文件读取漏洞" class="headerlink" title="0x02 任意文件读取漏洞"></a>0x02 任意文件读取漏洞</h3><p>所谓文件读取漏洞,就是攻击者通过一些手段可以读取服务器上开发者不允许读到的文件。从整个攻击过程看,是信息收集的补充。</p>
<h4 id="1-文件读取漏洞常见触发点"><a href="#1-文件读取漏洞常见触发点" class="headerlink" title="1. 文件读取漏洞常见触发点"></a>1. 文件读取漏洞常见触发点</h4><h6 id="1-1Web语言"><a href="#1-1Web语言" class="headerlink" title="1.1Web语言"></a>1.1Web语言</h6><p>(1)PHP<br>PHP中有关文件读的文件包括但不限于:file_get_contents()、file()、fopen()函数(及其文件指针操作函数fread()、fgets()等),与文件包含相关的函数(include()、require()、include_once()、require_once()等),以及通过PHP读文件的执行系统命令(system()、exec()等)。<br>除了上面提到的标准库函数,很多常见的PHP扩展也提供了一些可以读取文件的函数,例如,php-curl扩展(文件内容作为HTTP body)涉及文件存取的库(如数据库相关扩展、图片相关扩展)、XML模块造成的XXE等。<br>与其他语言不同,PHP向用户提供的指定待打开文件的方式不是简单的一个路径,而是一个文件流。我们可以将其简单理解成PHP提供的一套协议。在PHP中有很多功能不同但形式相似的协议,统称为Wrapper,其中最具特色的协议便是php://协议,而且PHP提供了接口供开发者编写自定义的wrapper。除了wrapper,PHP中另一个具有特色的机制是Filter,其作用是对目前的wrapper进行一定的处理(如把当前文件流的内容全部变为大写)。<br>假设服务端的include 函数的路径参数可控,正常情况下它会将目标文件当作PHP文件去解析,如果解析文件存在<code><?php</code>等PHP的相关标签,那么标签内就会被当作PHP代码执行。<br>如果将这种含有PHP代码的文件的文件名传入include函数,那么由于PHP代码被执行而无法通过可视文本的形式泄露,但这时可以通过使用Filter避免这种情况的发生。<br>例如比较常见的Base64相关的Filter可将文件流编码成Base64的形式,这样读取的文件内容中就不会存在PHP标签,而更严重的是,如果服务端开启了远程文件包含选项allow_url_include,我们就可以直接执行远程PHP代码。PHP默认的Wrapper和Filter都可以通过php.ini禁用。<br>在遇到的有关PHP文件包含的实际问题中,我们可能遇到三种情况<br> 1. 文件路径前面可控,后面不可控:在较低的PHP版本及容器版本中可以使用“\x00”截断,对应的URL编码是%00.当服务端存在文件上传功能时,也可尝试利用zip或phar协议直接进行文件包含进而执行PHP代码。<br> 2. 文件路径后面可控,前面不可控:可以通过符号“../”进行目录穿越来直接读取文件,但这种情况无法使用wrapper,如果服务端是利用include等文件包含类的函数,我们将无法读取php文件中的PHP代码。<br> 3. 文件路径中间可控:和第一种情况类似,但是无法利用wrapper进行文件包含。</p>
<p>(2)Python<br> 与PHP不同的是,Python的Web应用更多地倾向于通过其自身的模块启动服务,同时搭配中间件、代理服务将整个Web应用呈现给用户。</p>
<p>漏洞经常出现在框架请求静态资源文件部分,也就是最后读取文件内容的open函数,但直接导致漏洞的成因往往是框架开发者忽略了Python函数的feature,如os.path.join()。很多开发者会判断用户传入的路径不包含.来保证在读取资源时不会发生目录穿越,随后用户的输入代入os.path.join()的第二个参数,但如果用户传入“/”,则依然可以穿越到根目录,导致任意文件读取。 CTF中,python开发者调用不安全的解压模块进行文件压缩,而导致文件解压后可进行目录穿越,可以覆盖服务器已有文件。 还有一种情况是攻击者构造软链接放入压缩包,解压后的内容会直接指向服务器相应文件。</p>
<p>(3)Java<br>除了Java本身的文件读取函数FileInputStream、XXE导致的文件读取,Java的一些模块也支持file://协议,这是Java应用中出现任意文件读取最多的地方,如Spring Cloud Config Server路径穿越与任意文件读取漏洞(CVE-2019-3799)、Jenkins任意文件读取漏洞(CVE-2018-199902)等。</p>
<p>(4)Ruby<br>CTF中,Ruby的任意文件读取漏洞通常与Rails 框架相关,到目前为止,我们已知的通用漏洞为 Ruby On Rails远程代码执行漏洞(CVE-2016-0752)、Ruby On Rails路径穿越与任意文件读取漏洞(CVE-2018-3760)、(CVE-2019-5418)。</p>
<p>(5)Node<br>目前已知的Node.js的express模块曾存在任意文件读取漏洞(CVE-2017-14849),CTF中Node的文件读取漏洞通常为模板注入、代码注入等。</p>
<h6 id="1-2-中间件-x2F-服务器相关"><a href="#1-2-中间件-x2F-服务器相关" class="headerlink" title="1.2 中间件/服务器相关"></a>1.2 中间件/服务器相关</h6><p>(1)Nginx错误配置<br>常与Python-Web应用一起出现,因为Nginx一般被视为Python-Web反向代理的最佳实现。如果它的配置文件粗偶,就容易造成严重问题,例如<br> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">location /static{</span><br><span class="line"> alias /home/myapp/static/;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><br>如果配置文件包含上面这段话,很可能是运维或开发人员想让用户可以访问static目录。但是如果用户请求的web路径是/static../,拼接到alias上就变成了/home/myapp/static/../,此时便会产生目录穿越漏洞,并且穿越到了myapp目录。这时,攻击者可以任意下载python源代码和字节码文件。漏洞的成因是location最后没有加“/”限制。</p>
<p>(2)数据库<br>可以对文件进行读取操作的数据库很多,以MySQL为例。<br>MySQL的load_file()函数可以文件读取,但是要首先数据库配置FILE权限(root用户一般有),其次需要执行load_file()函数的MySQL用户对于目标文件具有可读权限,主流Linux系统还需Apparmor配置目录白名单。<br>还有一种方式,这种方式需要执行完整的SQL语句,即load data infile。需要FILE权限,比较少见。</p>
<p>(3)软连接<br>bash 命令 ln -s 可以创建一个指向文件的软链接文件,然后将这个软链接文件上传至服务器,当我们再次请求访问这个链接文件时,实际上是请求在服务端它指向的文件。</p>
<p>(4)FFmpeg<br>FFmpeg被爆出存在任意文件读取漏洞。</p>
<p>(5)Docker-API<br>Docker-API可以控制Docker的行为,Docker-API通过UNIX Socket通信,也可以通过HTTP直接通信,当我们遇见SSRF漏洞时,尤其是可以通过SSRF漏洞进行UNIX Socket通信时,就可以通过操纵Docker-API把本地文件载入Docker新容器进行读取。</p>
<h6 id="1-3-客户端相关"><a href="#1-3-客户端相关" class="headerlink" title="1.3 客户端相关"></a>1.3 客户端相关</h6><p>客户端也存在文件读取漏洞,大多数是基于XSS漏洞读取本地文件。<br>(1)浏览器/Flash XSS<br>一般来说,很多浏览器会禁止JavaScript代码读取本地文件相关操作,如请求一个远程网站,如果它的JS代码中使用File协议读取客户的本地文件,那么此时会由于同源策略导致读取失败。但有例外,Safari浏览器有一个客户端的本地文件读取漏洞。</p>
<p>(2)MarkDown语法解析器XSS<br>与XSS相似,MarkDown解析器也具有一定的解析JS的能力,但是这些解析器大多没有像浏览器一样本地文件读取的操作进行限制,很少有与同源策略类似的防护措施。</p>
<h4 id="2-文件读取漏洞常见读取路径"><a href="#2-文件读取漏洞常见读取路径" class="headerlink" title="2.文件读取漏洞常见读取路径"></a>2.文件读取漏洞常见读取路径</h4><h6 id="2-1-Linux"><a href="#2-1-Linux" class="headerlink" title="2.1 Linux"></a>2.1 Linux</h6><p>(1)flag名称(相对路径)<br>比赛过程中,有时爆破一下flag名称便可得到答案<br><img src="https://cdn.jsdelivr.net/gh/H-Limbus/myBlogImage@LoadImg/img/202305211938966.png" alt="image.png"></p>
<p>(2)服务器信息(绝对路径)<br>下面列出CTF线上赛中常见的部分需知目录和文件。</p>
<pre><code>1. /etc目录:多是各种应用或系统配置文件,所以其下的文件是进行文件读取的首要目标。
2. /etc/passwd:是Linux系统保存用户信息及其工作目录的文件,权限是所有用户/组可读。
3. /etc/shadow:是Linux系统保存用户信息及(可能存在)的密码(hash)的文件,权限是root用户可读写、shadow组可读,一般不可读。
4. /etc/apache2/\*:是Apache配置文件,可以获取Web目录、服务端口等信息。
5. /etc/nginx/\*:是Nginx配置文件(Ubuntu等系统),可以获知Web目录、服务端口等信息。
6. /etc/apparmor(.d)/\*:是Apparmor配置文件,可以获知各应用系统调用的白名单、黑名单。例如通过读配置文件查看MySQL是否禁止了系统调用,从而确定是否可以使用UDF(User Denfined Functions)执行系统命令。
7. /etc/(cron.d/\*|crontab):是定时任务文件,有些CTF题目会设置一些定时任务,读取这些配置文件就可以发现隐藏的目录或其他文件。
8. /etc/environment:是环境变量配置文件之一。环境变量可能存在大量目录信息的泄露,甚至可能出现secret key泄露情况。
9. /etc/hostname:表示主机名
10. /etc/hosts:是主机名查询静态表,包含指定域名解析IP的成对信息。可以探测网卡信息和内网IP/域名。
11. /etc/issue:指明系统版本
12. /etc/mysql/\*:是MySQL配置文件。
13. /etc/php/\*:是PHP配置文件。
14. /proc目录:通常存储进程动态运行的各种信息,本质上是一种虚拟目录。如果要查看非当前进程的信息,pid是可以进行暴力破解的,如果要查看当前进程,只需/proc/self代替/proc/\[pid\]/ 即可。对应目录下的cmdline可读出比较敏感的信息,如使用mysql-uxxx-pxxxx登录MySQL,会在cmdline中显示明文密码。有时我们无法获取当前应用所在的目录,通过cwd命令可以直接跳转到当前目录:/proc/\[pid\]/cwd/,环境变量中可能存在secret_key,这时也可以通过environ进行读取:/proc/\[pid\]/environ
15. 其他目录:
</code></pre>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Nginx配置文件可能存在其他路径: /usr/local/nginx/conf/*</span><br><span class="line">日志文件: var/log/\*</span><br><span class="line">Apache默认Web根目录: /var/www/html/</span><br><span class="line">PHP session目录:/var/lib/php(5)/sessions/</span><br><span class="line">用户目录:</span><br><span class="line"> ~/.bash_history(泄露历史执行命令)</span><br><span class="line"> ~/.bashrc(部分环境变量)</span><br><span class="line"> ~/.ssh/id_rsa(.pub)(ssh登录私钥/公钥)</span><br><span class="line"> ~/.viminfo (vim使用记录)。</span><br></pre></td></tr></table></figure>
<h6 id="2-2-Windows"><a href="#2-2-Windows" class="headerlink" title="2.2 Windows"></a>2.2 Windows</h6><p>windows 系统下的web应用任意文件读取漏洞在CTF赛题中不常见,但windows与PHP搭配使用有个问题:可以使用<code><</code>等符号作为通配符,从而在不知道完整名的情况下进行文件读取。</p>
<p>补充:include(),和 include_once()、require()、require_once()函数,当访问到的php文件中包含这两个函数时,可能会有文件包含漏洞,file://文件协议,访问 <a target="_blank" rel="noopener" href="https://www.xxxxx.com/upload.php?show=file://D:/WWW/123.txt">https://www.xxxxx.com/upload.php?show=file://D:/WWW/123.txt</a> 这种形式,只要知道准确路径,就可以任意读取文件。file://协议在读取本地文件时不需要allow_url_fopen和allow_url_include参数开启,如果读取网络文件需要开启。<code>file://http:xxx/a.php</code>。这几个函数也会将不是php的文件当作php执行。<br>php伪协议。作用是访问各个输入输出流,常用的是php://filter 和php://input,前者用来读取源码,后者用来执行代码。当enctype=”multipart/form-data”的时候,php://input是无效的。php://filter各个参数:<br><img src="https://cdn.jsdelivr.net/gh/H-Limbus/myBlogImage@LoadImg/img/202305241139095.png" alt="image.png"><br><a target="_blank" rel="noopener" href="https://localhost/update.php?file=php://filter/convert.base64-encode/resource=./shell.txt">https://localhost/update.php?file=php://filter/convert.base64-encode/resource=./shell.txt</a> –例子,将shell.txt中的内容用base64编码输出,如果shell.txt中已经是base64编码,可以使用php://filter/convert.base64-decode/resource=./shell.txt将文件解码并将以php执行。</p>
<p>php://input,是当Content-Type不等于multipart/form-data的时候可以获取原始请求数据的方法。经过测试,发现还需要开启allow_url_include开关,allow_url_fopen开不开启无所谓。请求方式是GET和POST都可以。include(),和 include_once()、require()、require_once()四种函数都可以执行,执行形式看表:<br><img src="https://cdn.jsdelivr.net/gh/H-Limbus/myBlogImage@LoadImg/img/202305250815984.png" alt="image.png"><br>在show参数后面写入php://input,表明读取原始数据,在data数据出写入想要执行的php代码,例如<code><?php phpinfo();?></code>查看phpinfo界面,或者<code><?php fputs(fopen("1.php", "w"), "<?php @eval($_GET[cmd]);?>");?></code>写入一句话木马。</p>
<p>还有一种方法,例如函数中不是include()等函数,而是有<code>eval(file_get_contents('php://input'));</code>的函数,可以自己创造,在data处直接写php代码即可。如图:<br><img src="https://cdn.jsdelivr.net/gh/H-Limbus/myBlogImage@LoadImg/img/202305250932545.png" alt="image.png"></p>
<p>zip://伪协议,这个方法不需要开启allow_url_fopen和allow_url_include参数,我们先向服务器上传一个zip文件,zip文件中包含一个一句话小马,如果服务器不支持上传zip文件,可以将后缀名改成别的,例如jpg这些,在解析的时候还是会当作zip解析的。整个文件的目录结构为upload.zip中有一个shell.php文件,文件中写入一句话:<code><?php @eval($_GET['cmd']);?></code>,访问方式为:<a target="_blank" rel="noopener" href="http://localhost/send.php?show=zip://upload.zip%23shell&cmd=phpinfo()">http://localhost/send.php?show=zip://upload.zip%23shell&cmd=phpinfo()</a>; 其中zip://后面跟着上传的zip文件路径,然后使用%23隔开,%23也就是#号,再后面跟上其中的文件名,使用&获取文件中的参数cmd,输入想要的命令。</p>
<p>data: //伪协议,这个协议需要同时开启allow_url_fopen和allow_url_include这两个参数,原理是允许将字符串传递给包含函数,使用方法很简单:<code>http://localhost/send.php?show=data:text/plain,<?php phpinfo();?></code>会返回phpinfo页面。include(),和 include_once()、require()、require_once()四种函数都可以执行。</p>
<p>python (Django)静态资源逻辑配置错误导致的文件读取漏洞,php配置的网站目录是按照文件夹的路径访问网站的,但是Django的网站路径可以自己配置,在项目文件夹下面的urls.py文件中,<code>urlpatterns=[re_path('^login/$', views.LoginView.as_view(), name='login')]</code>在url后面输入/login/就可访问,但是要访问一些js,css文件的话,自定义又很麻烦, 于是在网站配置的时候可以创建一个static文件夹,将静态文件放到这个文件夹中,而视图界面python文件中views.py中要是配置不得当,不对输入的文件名做检测的话,就会产生漏洞。利用规则<code>path=/static/../../../../../etc/passwd</code>但是如果对文件后缀名进行了过滤,可以访问__pycache__这个文件夹,其中pyc字节码 文件的命名规则是:<code>[module_name]+".cpython-3+[\d](python3小版本号)+".pyc"</code>这是原本文件的缓存,获取了pyc字节码文件后,对这个文件进行反编译,审计代码是否存在漏洞。反编译推荐工具uncompyle6,github地址为:<a target="_blank" rel="noopener" href="https://github.com/rocky/python-uncompyle6%E3%80%82">https://github.com/rocky/python-uncompyle6。</a></p>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-Metasploit渗透测试指南"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/17/Metasploit%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/"
>Metasploit渗透测试指南
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/17/Metasploit%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/" class="article-date">
<time datetime="2023-05-17T12:56:14.950Z" itemprop="datePublished">2023-05-17</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Metasploit%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Metasploit渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h3 id="0x00-情报收集"><a href="#0x00-情报收集" class="headerlink" title="0x00 情报收集"></a>0x00 情报收集</h3><h4 id="1-被动信息收集"><a href="#1-被动信息收集" class="headerlink" title="1. 被动信息收集"></a>1. 被动信息收集</h4><p>在不接触到目标系统的情况下挖掘目标信息。</p>
<ol>
<li><p>whois 查询</p>
<p>msf中也有whois,在外部也可以用whois查询。</p>
</li>
<li><p>Netcraft</p>
<p>是一个网页界面工具,查询网站IP</p>
</li>
<li><p>NsLookup</p>
<p>获取关于服务器的附加信息</p>
<a class="article-more-link" href="/2023/05/17/Metasploit%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li></ul>
</footer>
</div>
</article>
<article
id="post-web安全攻防:渗透测试实战指南读书笔记/web安全攻防:渗透测试实战指南--第三章(常用工具)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%89%E7%AB%A0%EF%BC%88%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%EF%BC%89/"
>0x02 常用渗透工具
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%89%E7%AB%A0%EF%BC%88%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:49:40.800Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Web安全攻防:渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h3 id="3-1-SQLMap-详解"><a href="#3-1-SQLMap-详解" class="headerlink" title="3.1 SQLMap 详解"></a>3.1 SQLMap 详解</h3><p>sqlmap 是一个自动化的SQL注入工具,内置很多绕过插件,支持市面上大多数据库。一般采用五种SQL注入技术。</p>
<p>布尔盲注:根据返回页面判断条件真假的注入</p>
<p>时间盲注:根据页面返回时间判断</p>
<p>报错注入:页面会返回错误信息</p>
<p>联合查询注入:使用 Union 的情况下注入</p>
<p>堆查询注入:执行多条语句的注入</p>
<p>sqlmap 中有数据库指纹识别、数据库枚举、数据提取、访问目标文件系统。</p>
<a class="article-more-link" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%89%E7%AB%A0%EF%BC%88%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-web安全攻防:渗透测试实战指南读书笔记/web安全攻防:渗透测试实战指南--第六章(PowerShell 攻击)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%85%AD%E7%AB%A0%EF%BC%88PowerShell%20%E6%94%BB%E5%87%BB%EF%BC%89/"
>0x04 PowerShell 攻击
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%85%AD%E7%AB%A0%EF%BC%88PowerShell%20%E6%94%BB%E5%87%BB%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:50:27.710Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Web安全攻防:渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h3 id="6-1-PowerShell技术"><a href="#6-1-PowerShell技术" class="headerlink" title="6.1 PowerShell技术"></a>6.1 PowerShell技术</h3><p>常用的powershell 攻击工具</p>
<p>powersploit : 常用的后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化控制等操作。</p>
<p>Nishang: 集成了框架、脚本和各种payload,包含下载和执行、键盘记录、DNS、延时命令等脚本。</p>
<p>Empire:基于powershell 的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息</p>
<p>powercat</p>
<a class="article-more-link" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%85%AD%E7%AB%A0%EF%BC%88PowerShell%20%E6%94%BB%E5%87%BB%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-web安全攻防:渗透测试实战指南读书笔记/web安全攻防:渗透测试实战指南--第四章(web安全原理剖析)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%88web%E5%AE%89%E5%85%A8%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90%EF%BC%89/"
>0x03 Web安全原理剖析
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%88web%E5%AE%89%E5%85%A8%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:49:27.680Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Web安全攻防:渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h3 id="4-3-SQL注入"><a href="#4-3-SQL注入" class="headerlink" title="4.3 SQL注入"></a>4.3 SQL注入</h3><p>内容可以看我之前写的 sqli-labs注入, 链接是: <a href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/SQL%E6%B3%A8%E5%85%A5/">http://limbus.top/categories/网络安全/SQL注入/</a></p>
<h4 id="4-3-2-XFF注入攻击"><a href="#4-3-2-XFF注入攻击" class="headerlink" title="4.3.2 XFF注入攻击"></a>4.3.2 XFF注入攻击</h4><p>请求头的X-Forwarfed-For注入。代表了客户端的真实IP。通过修改X-Forwarded-For的值可以伪造客户端IP。修改XFF和其他部位修改一样。</p>
<h4 id="4-3-3-防止SQL注入"><a href="#4-3-3-防止SQL注入" class="headerlink" title="4.3.3 防止SQL注入"></a>4.3.3 防止SQL注入</h4><p>使用过滤语句,用正则匹配过滤</p>
<a class="article-more-link" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%88web%E5%AE%89%E5%85%A8%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-web安全攻防:渗透测试实战指南读书笔记/web安全攻防:渗透测试实战指南--第二章(搭建环境实战)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%BA%8C%E7%AB%A0%EF%BC%88%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83%E5%AE%9E%E6%88%98%EF%BC%89/"
>0x01 搭建环境实战
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%BA%8C%E7%AB%A0%EF%BC%88%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83%E5%AE%9E%E6%88%98%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:48:24.020Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Web安全攻防:渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h4 id="2-1-在linux系统中安装LANMP"><a href="#2-1-在linux系统中安装LANMP" class="headerlink" title="2.1 在linux系统中安装LANMP"></a>2.1 在linux系统中安装LANMP</h4><p>LANMP(linux、Apache、Nginx、MySQL和PHP)</p>
<h4 id="2-2-Windows系统中安装WAMP"><a href="#2-2-Windows系统中安装WAMP" class="headerlink" title="2.2 Windows系统中安装WAMP"></a>2.2 Windows系统中安装WAMP</h4><p>可以用小皮代替</p>
<a class="article-more-link" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%BA%8C%E7%AB%A0%EF%BC%88%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83%E5%AE%9E%E6%88%98%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-web安全攻防:渗透测试实战指南读书笔记/web安全攻防:渗透测试实战指南--第一章(信息收集)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%80%E7%AB%A0%EF%BC%88%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%EF%BC%89/"
>0x00 信息收集
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%80%E7%AB%A0%EF%BC%88%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:45:39.290Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a> / <a class="article-category-link" href="/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/">Web安全攻防:渗透测试指南</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h4 id="1-收集域名"><a href="#1-收集域名" class="headerlink" title="1.收集域名"></a>1.收集域名</h4><pre><code>whois 查询:whois 是一个标准的互联网协议,收集域名注册人信息,IP地址等。
kali 直接 whois xxxx.com , 网站有 https://whois.aizhan.com、 http://whois.chinaz.com、 https://www.virustotal.com
备案信息查询: ICP备案查询网:http://www.beianbeian.com
天眼查 :http://www.tianyancha.com
</code></pre>
<h4 id="2-收集敏感信息"><a href="#2-收集敏感信息" class="headerlink" title="2.收集敏感信息"></a>2.收集敏感信息</h4><pre><code>Google语法:site(域名)、inurl(url中关键字)、intext(网页中正文)、filetype(文件类型)、intitle(标题关键字) link(返回查询语法的做了链接的url)、 info(一些站点的基本信息)、cache(缓存)
github 中搜索一些关键的key
</code></pre>
<a class="article-more-link" href="/2023/05/15/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/web%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%EF%BC%9A%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97--%E7%AC%AC%E4%B8%80%E7%AB%A0%EF%BC%88%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
</footer>
</div>
</article>
<article
id="post-XSS-Labs练习/XSS-Labs练习"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/XSS-Labs%E7%BB%83%E4%B9%A0/XSS-Labs%E7%BB%83%E4%B9%A0/"
>xss-labs漏洞练习
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/XSS-Labs%E7%BB%83%E4%B9%A0/XSS-Labs%E7%BB%83%E4%B9%A0/" class="article-date">
<time datetime="2023-05-15T07:45:38.140Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/">网络安全</a> / <a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/XSS%E6%BC%8F%E6%B4%9E%E7%BB%83%E4%B9%A0/">XSS漏洞练习</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<p>上一次我们练习了文件上传的漏洞,今天我们来看看这个xss跨站攻击漏洞,这个漏洞的作用就是通过在web 站点,向客户端交付恶意脚本代码,实现对客户端的攻击。</p>
<p>xss漏洞分为反射型,存储型,DOM型</p>
<h2 id="第一关:"><a href="#第一关:" class="headerlink" title="第一关:"></a>第一关:</h2><p>我们先来查看这一关,看到链接后面有一个name=test,当我们改变后面的值,发现页面里面的值也改变了,所以页面的值是由get的链接后面的name值来控制的。我们尝试在name后面输入最简单的xss, <code><script>alert(1);</script></code>,发现直接过关了。说明已经触发了xss漏洞。这个是在get链接里面控制的,所以这是个反射性漏洞。</p>
<a class="article-more-link" href="/2023/05/15/XSS-Labs%E7%BB%83%E4%B9%A0/XSS-Labs%E7%BB%83%E4%B9%A0/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li></ul>
</footer>
</div>
</article>
<article
id="post-Upload-Labs文件上传训练/Upload-Labs文件上传训练"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/"
>文件上传训练
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/" class="article-date">
<time datetime="2023-05-15T07:45:36.870Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/">网络安全</a> / <a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/">文件上传</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<p>在做完了sqli-labs 之后,咋们来看看这个上传文件的题。</p>
<h2 id="第一关:"><a href="#第一关:" class="headerlink" title="第一关:"></a>第一关:</h2><p>他的界面直接提示着,请选择上传的图片,肯定就会有过滤的,咋们先上传一个<code>.php</code>文件试试水。果然,报错了,说是上传jpg,gif,png 格式的文件,好办,去bp上修改一下,查看源码,这儿是前端验证。如果是前端验证,咋们就把php文件的后缀改为他支持的格式,然后在bp 上再改回来就欧克了。</p>
<p>上传成功,然后用菜刀连接,直接连接成功。</p>
<a class="article-more-link" href="/2023/05/15/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/Upload-Labs%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AE%AD%E7%BB%83/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li></ul>
</footer>
</div>
</article>
<article
id="post-Sqli-Labs注入训练/Sqli-Labs-master 注入训练(Page-3)"
class="article article-type-post"
itemscope
itemprop="blogPost"
data-scroll-reveal
>
<div class="article-inner">
<header class="article-header">
<h2 itemprop="name">
<a class="article-title" href="/2023/05/15/Sqli-Labs%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83/Sqli-Labs-master%20%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83%EF%BC%88Page-3%EF%BC%89/"
>Sqli-labs注入训练(page-3)
<i class="article-topping">Sticky</i>
</a>
</h2>
</header>
<div class="article-meta">
<a href="/2023/05/15/Sqli-Labs%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83/Sqli-Labs-master%20%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83%EF%BC%88Page-3%EF%BC%89/" class="article-date">
<time datetime="2023-05-15T07:45:35.560Z" itemprop="datePublished">2023-05-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/">网络安全</a> / <a class="article-category-link" href="/categories/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/SQL%E6%B3%A8%E5%85%A5/">SQL注入</a>
</div>
</div>
<div class="article-entry" itemprop="articleBody">
<h2 id="Less-38:Less-39:Less-40:Less-41"><a href="#Less-38:Less-39:Less-40:Less-41" class="headerlink" title="Less-38:Less-39:Less-40:Less-41:"></a>Less-38:Less-39:Less-40:Less-41:</h2><p>这几关都是堆叠注入的应用,堆叠注入,顾名思义,就是使用分号将注入语句分开,多次注入,创建新的用户,或者删除用户,创造无限可能。但是需要知道一些数据。</p>
<p>他也有很多的局限性,比如权限不够,或者收到api或数据库引擎的限制。oracle数据库不支持堆叠注入。</p>
<p>构造payload</p>
<p>添加用户 <code>?id=1';insert into users(id,username,password) values ('30','skk','skkhj')--+</code> 后面的值一定要用引号引起来。</p>
<p>更新用户<code>?id=1;update users set password='zjwdqc' where id=30--+ </code></p>
<a class="article-more-link" href="/2023/05/15/Sqli-Labs%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83/Sqli-Labs-master%20%E6%B3%A8%E5%85%A5%E8%AE%AD%E7%BB%83%EF%BC%88Page-3%EF%BC%89/"
>阅读更多...</a
>
<!-- reward -->
</div>
<!-- copyright -->
<footer class="article-footer">
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%AD%A6%E4%B9%A0/" rel="tag">学习</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/" rel="tag">网络安全</a></li></ul>
</footer>
</div>
</article>
</article>
<nav class="page-nav">
<span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="extend next" rel="next" href="/page/2/">下一页</a>
</nav>
</section>
</div>
<footer class="footer">
<div class="outer">
<ul>
<li>
Copyrights ©
2023
<i class="ri-heart-fill heart_icon"></i> Limbus
</li>
</ul>
<ul>
<li>
</li>
</ul>
<ul>
<li>
<span>
<span><i class="ri-user-3-fill"></i>Visitors:<span id="busuanzi_value_site_uv"></span></span>
<span class="division">|</span>
<span><i class="ri-eye-fill"></i>Views:<span id="busuanzi_value_page_pv"></span></span>
</span>
</li>
</ul>
<ul>
</ul>
<ul>
</ul>
<ul>
<li>
<!-- cnzz统计 -->
<script type="text/javascript" src='https://s9.cnzz.com/z_stat.php?id=1278069914&web_id=1278069914'></script>
</li>
</ul>
</div>
</footer>
</main>
<div class="float_btns">
<div class="totop" id="totop">
<i class="ri-arrow-up-line"></i>
</div>
<div class="todark" id="todark">
<i class="ri-moon-line"></i>
</div>
</div>
<aside class="sidebar on">
<button class="navbar-toggle"></button>
<nav class="navbar">
<div class="logo">
<a href="/"><img src="https://cdn.jsdelivr.net/gh/H-Limbus/h-limbus.github.io@latest/images/logo.png" alt="Limbus' Blog"></a>
</div>
<ul class="nav nav-main">
<li class="nav-item">
<a class="nav-item-link" href="/">主页</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/archives">归档</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/categories">分类</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/tags">标签</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/photography">摄影</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/friends">友链</a>
</li>
<li class="nav-item">
<a class="nav-item-link" href="/2023/about">关于我</a>
</li>
</ul>
</nav>
<nav class="navbar navbar-bottom">
<ul class="nav">
<li class="nav-item">
<a class="nav-item-link nav-item-search" title="Search">
<i class="ri-search-line"></i>
</a>
<a class="nav-item-link" target="_blank" href="/atom.xml" title="RSS Feed">
<i class="ri-rss-line"></i>
</a>
</li>
</ul>
</nav>
<div class="search-form-wrap">
<div class="local-search local-search-plugin">
<input type="search" id="local-search-input" class="local-search-input" placeholder="Search...">
<div id="local-search-result" class="local-search-result"></div>
</div>
</div>
</aside>
<div id="mask"></div>
<!-- #reward -->
<div id="reward">
<span class="close"><i class="ri-close-line"></i></span>
<p class="reward-p"><i class="ri-cup-line"></i>请我喝杯茶吧~</p>
<div class="reward-box">
<div class="reward-item">
<img class="reward-img" src="https://cdn.jsdelivr.net/gh/H-Limbus/h-limbus.github.io@latest/images/alipay.jpg">
<span class="reward-type">支付宝</span>
</div>