- 博客(13)
- 收藏
- 关注
原创 CTSHOW-web入门-sql注入(web248-web253)UDF注入与nosql注入
用户可以添加自定义的新函数到Mysql中,以达到功能的扩充,调用方式与一般系统自带的函数相同,例如 contact(),user(),version()等函数。但是这里是使用的get传参,然而浏览器对url的长度有限制,这么长的payload显然会超出限制。所以我们采用分段写入,最后通过concat和load_file将分段的内容结合起来写入最终的hack.so。有关具体的数据库和集合的操作可以看教程自学,这里便着重介绍一下mongodb的条件操作符,以及查询语句。只拿到了admin的密码,拿来登录试试。
2025-09-02 20:14:00
853
原创 CTSHOW-web入门-sql注入(web241-web247)
随便删除一条看看发现依旧是通过api传参,且是POST的方式。直接访问/api/delete.php传参,测试发现有两个状态,一种是删除成功,一种是删除失败,所以理论上是可以进行bool盲注的,但是页数不足以我们爆破出所有信息。所以尝试一下时间盲注可以发现确实有延迟,但是延迟太久太久了直接504超时了。我便换成benchmark试试发现这个延迟只有2-3s适合用来时间盲注。脚本如下最终跑出flag为。
2025-09-01 19:38:36
1102
原创 CTSHOW-web入门-sql注入(web221-web240)
本题告诉我们将or与单引号’给过滤了,十分不幸我们的information_schema中包含or这个单词,并且尝试双写,大小写,或者十六进制编码都无法绕过。由于我们想拿到flagas字段的值是要查ctfshow_flagasa表,然而题目中给出的sql语句是查ctfshow_web表的。0x7e,即 ‘~’ ,extractvalue 只有两个参数,它的第二个参数都要求是符合 xpath 语法的字符串,如果不满足要求,则会报错,并且将查询结果放在报错信息里,‘~’ 不是 xml 实体,所以会报错。
2025-08-26 22:39:18
1099
原创 CTFSHOW-web入门-sql注入(web214-web220)时间盲注篇
但是在调试脚本的时候我发现,这个时间区间的范围非常有讲究。可以将 # print(sub_time)解开注释自行分析,我发现一个很神奇的地方就是,如果输出了正确的字符在我这里时间延迟大概是0.9s多,但是如果我的时间上限设置的比较大就经常性的会匹配到错误的字符(一般时间延迟是1.05-1.10s),具体原因我并不知道但是0.9s-1.05s以内匹配到的基本都是正确的字符。这个脚本我优化的还是不好,偶尔还是会有错误的输出,并且最后会将最后一个字符重复输出,我也不知道咋优化了,我的解决办法就是多跑两遍。
2025-08-20 15:03:37
1933
原创 CTFSHOW-web入门-sql注入(web201——web213)(系统练习sqlmap)
这次过滤了*空格与=,那么便不能用/**/来替换空格了,可以用+替换空格,用like替换等于。对应的绕waf函数是,space2plus.py,equaltolike.py。但是经过我的测试发现无法成功,并且内置绕过空格的现在都不好用了。我们可以自己写一个自定义的绕waf脚本。可以采用: Tab %09、换行符 %0A、回车符 : %0D 代替空格。这里我参考了my6n师傅的做法。为了不影响原本的 tamper,在tamper目录下新建一个Mytamper目录(用于存放自定义的脚本)。
2025-08-18 20:27:34
973
原创 CTFSHOW-web入门-sql注入(web190——web200)
题目说了是堆叠注入,那么我们直接将所有用户的用户名与密码都改成1就可以了。这些都是可以替代substr的,我们用的是mid不在过滤范围。但是这题非常的坑爹,它将flag的表名给换了,我就说咋一直跑不出flag。看了别的师傅的wp,发现还是可以插入数据(我以为into被过滤了插入不了)又过滤了char,但是我们使用的是chr。可以发现回显不一样,并且当回显是密码错误的时候说明是成功注入的。用上一关的脚本直接秒了。这一次将substr过滤了,直接用mid替代即可。这一次还将括号过滤了,那么便无法插入数据了。
2025-08-18 20:24:40
902
原创 CTFSHOW-web入门-sql注入(web171——web189)
补充知识点:having 是从前筛选的字段再筛选,而 where 是从数据表中的字段直接进行的筛选的,如果已经筛选出了某个字段,这种情况下 having 和 where 等效,但是如果没有 select 某个字段,后面直接 having 这个字段,就会报错。在sql中,数字和字符串的比较是弱类型的,如果在比较操作中涉及到字符串和数字,SQL 会尝试将字符串转换为数字,那么只要字符串不是以数字开头,比较时都会转为数字 0。这一次是过滤了所有的ascii码字符,那么想要直接将flag显示出来肯定不太可能了。
2025-08-18 20:17:28
962
原创 php://filter伪协议(总结)与死亡代码的绕过
是 PHP 中的一种伪协议,用于在读取或写入文件时对数据流进行过滤和转换。它允许你在不修改原始文件的情况下,对文件内容执行各种编码、解码或转换操作,常用于安全审计、数据处理或漏洞利用场景。使用前提:开启了allow_url_fopen和allow_url_includephp://filter/[读|写过滤器列表]/resource=目标文件名称描述resource=目标文件必须。用于指定你要筛选过滤的数据流。read=<读链的筛选列表>可选。用于指定一个或多个过滤器名称,以管道符(`
2025-08-15 13:41:09
2698
原创 CTFSHOW-Web入门-文件包含(web78-web88,web116,web117)
命令执行完了,另一个线程没有执行删除命令但已写入sess_PHPSESSID文件,这样第一个线程文件包含时session文件仍然存在。所以我们需要通过条件竞争,在服务器还未将此文件删除的时候成功文件包含此文件,从而执行我们的恶意代码。此题虽然对php:进行了过滤,但是在file_put_contents的时候对$file进行了url解码,而在我们传入参数后本身就会自动解码一次。所以我们可以通过先url全编码一次,再url编码一次便能使用php://伪协议了。这一次它对file进行了过滤,过滤了php。
2025-08-15 13:09:57
987
原创 SSRF漏洞讲解(非常详细)
SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造请求,由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。但是由于服务器请求天然的可以穿越防火墙,所以如果一台能被外网所访问的服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向内网某服务器发起请求,达到攻击内网的目的。漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作正确的过滤和限制。
2025-08-09 23:39:35
2639
原创 XXE外部实体注入漏洞
DTD(文档类型定义)的作用是定义XML文档的合法构建模块。DTD可以在XML文档内声明,也可以外部引用(这就是XXE注入存在的地方)。DTD主要分为内部DTD与外部DTD。
2025-08-07 23:26:29
783
原创 CTFSHOW-web入门-XSS(web316-333)
那现在的思路就变成了Cookie盗取,让管理员一上线便会触发我们发的留言里的js代码,然后将自己的Cookie发送到我们指定的位置。这个时候稍等片刻,会有个类似admin管理员的程序每隔一段时间就查看我们提交的留言便会触发恶意的XSS代码,然后就可以拿到admin的cookie。既然没法通过盗取cookie伪造admin了,那我们可以将XSS的恶意代码替换成直接将用户管理页面的内容上传到我们的服务器。那我们便可以在注册的时候写入恶意的XSS代码,让管理员一看到就将自己的密码修改成我们指定的。
2025-08-05 15:51:38
879
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅