CTF ---web题思路总结

奇怪的轩轩 2024-07-11 13:33:02 阅读 81

一.web题解题流程

1.提示信息

        面对一道web题时,先注意题目名字或者提示。如'eazy_sql'则大概率为sql注入题目。若含有'flask''tornado'等词,可以考虑去搜索这些服务器的历史漏洞。

2.收集信息

        可以使用dirsearch等工具扫描目录,有可能找到www.zip等文件,大概率包含源代码,用于代码审计。或者/admin等目录,才是真正要去寻找漏洞的目录。

        还可以查看源代码,有些源码或提示信息会以注释的方式隐藏在前端。

        如果真的没线索,可以抓包,提示信息可能隐藏在cookie或自定义的header字段中。

二:SQL注入

1.绕过技巧

        可以自己写一个关键词目录,然后用bp的爆破模块攻击,来确定过滤哪些单词。以下是我自己写的关键词目录。

<code>’

#

union

left

substr

mid

(

)

,

insert

and

or

=

database()

column

table

length

/**/

ascii

if

from

flag

select

where

group

*

/

in

not

chr

ord

column

table

information

schema

&&

||

        substr可用mid代替,ord可用ascii代替,空格可用/**/或括号代替。

例如:

select(flag)from(flag)

2.堆叠注入

show tables展示所有的表

handler table_name open;handler table_name read first #如果表名是数字,需要加`  `

3.特殊技巧

数据库存在截断和去除末尾空格的机制。

如果遇到如下情况:

if($POST[a]=='admin){

die();

}

但你需要登录admin账户。你可以:

a=admin 1

这样可以绕过比较,但插入数据库时由于字符串过长,会把后面去掉,插入的用户名就为admin,达到目标。

如果遇到如下:

 

select * from user where username="POST[a]" and password="POST[b]";code>

但是引号又被过滤了,可以:

a=admin\

b= or 1=1#

'\'可以把sql语句中的'注释掉,语句变为:

select * from user where username='admin\' and password =' or 1=1 #code>

语句恒成立。

三:文件包含漏洞

1.信息观察

        如果给出的源代码有include()字段或url中有        ?file=1.txt        。可以考虑文件包含漏洞。可以先输入        /etc/passwd        判断是否有这个漏洞。

        可以根据题目提示信息观察是否有拼接路径。若没有,可以尝试data,input,filter等协议。

        若有在前面有拼接/detail等路径,可以:

?file=../../../../../../../../../etc/passwd

        ../尽可能多,来回到根目录。

2.日志文件包含漏洞

        可以通过response的sever观察服务器是否是nginx。

        nginx的日志默认在/var/log/nginx/access.log。可以尝试在UA中添加一句话木马,然后连接。

3.session文件包含漏洞

        在此就不赘述,网上有很多相关信息,可以自己查看。

四:绕过技巧

        最经典的就是无字母rce绕过,异或取反都可以,网上有很多脚本,可以自行了解。

常见的:

linux:

空格:$IFS$9

${IFS}$

<

<>

字符串:cat=>ca\t

g=at;c$g

more tac nl less head tail paste

base64编码: echo 'cat flag.txt'|base64

echo 编码结果 |base64 -d|sh

php:aaa=>chr(97).chr(97).chr(97)

python:将字符串转化为unicode编码或16进制

未完待续.......



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。