- 博客(47)
- 收藏
- 关注
原创 解决windows下pycharm终端conda无法激活虚拟环境问题
在PyCharm中修改终端Shell路径为cmd的方法:打开PyCharm后进入"File > Settings"(Windows)或"PyCharm > Preferences"(Mac),在左侧导航中选择"Tools > Terminal",找到"Application Settings"下的"Shell path"选项,点击下拉菜单选择"cmd.exe"或输入cmd的完整路径(如C:\Windows\System32\cmd.exe),最后点击"OK"保存设置。这样终端将默认使用Windows命令提示
2025-06-11 15:58:38
259
原创 域内信息收集
1.存在域,但是当前用户不是域用户发生系统错误 拒绝访问2.存在域,当前用户是域用户显示对应域名、时间3.当前网络环境为工作组,不存在域找不到域控net config workstation查询域nltest /dcli's't:域名 查询域控ping 域控 或者 nslookup 域控 获取域控iparp -a 获取通讯记录,可能找到其他机器ip所属网段。
2024-09-24 20:23:18
388
原创 [BJDCTF2020]Cookie is so stable
输入后我们重新进一次flag.php,发现cookie里存储了刚刚登陆时输入的用户名,直接猜是ssti。这里貌似只能显示一行,ls显示不全,所以直接猜flag在根目录下了。flag.php页面我们先随便输入一个名字。尝试后根据ssti特征判断是twig模板。hint提示查看cookies。
2024-03-13 16:01:39
631
原创 [WUSTCTF2020]朴实无华
这个比较使用了==,是弱类型判断,也可以通过和第一步差不多的思路,科学计数法0==0绕过。故只要我们找出0e开头且MD5值也是0e开头的字符串即可。这一步自己写脚本可能得跑一段时间,但现在我们站在巨人的肩膀上,找到了符合这个条件的字符串 0e215962017。通过科学计数法绕过num="3e3",经过intval()解析,结果如下图。显然这是个假的flag,但是我们在header处发现了fl4g.php。这一步就比较简单了,空格可以使用$IFS$9代替。插件转成utf8后正常显示。
2024-03-12 15:33:01
434
原创 [GYCTF2020]Blacklist
感觉是[强网杯 2019]随便注 的加强版,之前做的是最后可以通过prepare和execute实现对select的绕过,但是这题把这两个关键字也过滤了。查看其他师傅的wp,发现这个handler的可以当作丐版select来查询信息。前面堆叠注入没啥问题,卡在了最后读取flag。
2024-02-15 22:44:40
194
原创 [GXYCTF2019]禁止套娃
故通过PHPSESSID传递参数,session_id()获取PHPSESSID, session_start()创建新会话或重启现有会话,最后通过highlight_file()实现内容回显。这里观察到多次判断,首先要有个get参数exp,第二层是过滤了php伪协议,第三层是正则匹配,要求输入的字符串满足形如以下的格式,第四层过滤了一些目录名称。进来发现只有这句话,习惯性访问一下flag.php,发现不是404,那就证明flag就在这了,接下来要想办法拿到flag.php的源码。
2024-02-15 22:40:49
425
原创 [BJDCTF2020]ZJCTF,不过如此
查找资料我们发现,在php5.6及以下版本中,/e使得preg_replace的第二个参数可以被当作php代码执行,第二个参数中\\1指的是正则匹配到的第一组文本,是定死的,所以我们可以考虑第一个参数使用.*匹配任意文本,第三个参数${getFlag()},从而让第二个参数的值取得${getFlag()}并执行getFlag()函数。通过下面的foreach循环,re为get变量的键,str为get变量的值,故可构造。这里${}的作用是变量替换,实现先执行表达式并将其作为变量的值的效果。
2024-02-12 17:22:32
755
原创 [BSidesCF 2020]Had a bad day
我们发现要想能够正常包含flag.php,我们传的参数就必须要有woofers出现或meowers出现或index的出现位置不在0处。woofers换成meowers或者index都可以 ,作用是绕过上面的if判断。这里尝试一下,发现自动加了个php后缀,成功查看到index源码。看一下flag.php的页面,再次印证。这个传参猜测本题涉及文件包含。尝试直接读取flag.php。
2024-02-11 22:47:18
834
原创 [网鼎杯 2020 朱雀组]phpweb
抓包发现两个参数,结合报文返回的warning猜测两个参数一个传函数名,另一个传函数参数。file_get_contents获取index.php的源码,发现可以反序列化实现RCE。尝试直接system('ls /'),发现被过滤了。这里复现的时候不知道为什么显示不全。最后手动找到flag。
2024-02-11 00:27:45
747
原创 [BJDCTF2020]The mystery of ip
这里尝试用jinja的注入方法,页面回显了是php的smarty框架。查了一下smarty的注入方法,发现可以直接执行php命令。下面这一步是看了wp出来的:存在ssti。hint 猜测ip和XFF有关。在根目录找到flag。
2024-01-27 13:42:41
438
原创 [网鼎杯 2018]Fakebook1
data存在4这里,并且上面一张图可以看出data是序列化的字符串,我们把blog改成file:///var/www/htmlflag.php。回到view.php,查出来有四列,然后还发现过滤了union select中间的空格,用/**/替代空格绕过。那我们是不是可以通过填入存储flag的地址,从而回显出来呢?这里爆出来的也都是我们join的序列化数据,显然flag不在这里,假装我们已经扫出来user.php.bak和flag.php。查看这个页面的源代码,发现一个base64编码后的字串。
2024-01-26 20:19:38
487
原创 [CISCN2019 华北赛区 Day2 Web1]Hack World1
这里注意一个位置判断完之后要sleep一会,防止顺序乱了,并且保证flag打出来是完整的。发现当id=0=0和id=1=1时效果都等同id=1,这说明可以通过布尔运算实现盲注。测试发现过滤了and or union update 空格 分号等等。
2024-01-26 17:24:27
226
原创 [GXYCTF2019]BabySQli1
第一次接触这种题,属实是摸不着头脑,因为正常思路目的是爆库在库里找到flag字段,这道题不是这么想的,而是把目标放在了绕过原有的密码成功登入。尝试报错注入时发现过滤了圆括号,网上搜索似乎也没找到能绕过使用圆括号的方法,那么按以往爆库爆表爆字段的方法似乎无法使用了。根据经验这里猜测第三列存放的是账号对应的密码,而从sql库中获取密码后就会与我们输入的pw作对比,如果相等则成功登入。在响应报文找到一段注释,解码后发现是这样的,数据库根据我们输入的用户名查找三列信息。
2024-01-25 19:22:36
440
原创 [GXYCTF2019]BabyUpload1
木马改用@eval($_POST['cmdjs']);尝试各种文件,黑名单过滤后缀ph,content-type限制image/jpeg。上传.htaccess将上传的文件当作php解析。蚁剑连接得到flag。
2024-01-25 16:43:29
572
原创 [SUCTF 2019]CheckIn1
上传.user.ini使用auto_pr可以看到getshell.gif的文件头已经显示出来了,说明成功包含getshell.gif,后面跟着的一句话木马自然可以运行epend_file=将指定文件包含到当前目录下的php文件前
2024-01-25 14:58:56
612
原创 [网鼎杯 2020 青龙组]AreUSerialz1
还有一点,php7.1+反序列化对类属性不敏感。因为给的代码用的属性是protected,反序列化出来会多两个null符号,is_valid()限制了不能使用'\',我用%00尝试也没反应。注意destruct里面如果op==="2" op就会变回1所以这里我们反序列化时要让op等于数值2就不会触发这个if语句。process()有两个情况,op=1时触发write(),op=2触发read(),这里我们要触发read才能读取源码。反序列化+文件包含,目标是通过传str拿到flag.php的源码。
2024-01-24 22:53:24
681
原创 [MRCTF2020]Ez_bypass1
时会将字符串转换为数值再比较,,字符串数字开头则转换到第一个非数字前,不是数字开头的则转换为0。下一步是passwd不能是纯数字,但是下一个判断又要passwd等于1234567。代码审计,要求gg和id的MD5值相等而gg和id的值不等或类型不等。这里通过passwd=1234567a实现绕过。不过这道题好像只能用数组。
2024-01-24 21:49:09
579
原创 [极客大挑战 2019]HardSQL1
发现过滤了union、空格、and、by,于是尝试通过报错注入,空格绕过可以通过括号括住来避免使用空格。用group_concat()把column_name包起来,实现一行的效果。下一步查表名发现等号被过滤了,使用like绕过。使用right切一下,得到完整flag。substr、mid被过滤了。提示子查询返回多于1行。
2024-01-24 15:26:57
432
1
原创 [ZJCTF 2019]NiZhuanSiWei1
代码审计,要传三个参数,首先要text的内容等于welcome to the zjctf ,但是这里用了file_get_content()而不是简单的字符串相等,考虑使用php伪协议传入数据。下面接着include了file,旁边提示了useless.php,直接include它,是空白页面,接着用伪协议获取源码。结合一开始的password反序列化,可以让Flag里面的file再通过伪协议读取flag.php源码。让password等于上面这串 ,得到base64再解码。base64解码后我们得到了,
2024-01-24 12:53:12
679
1
原创 [护网杯 2018]easy_tornado1
cookie_secret的位置。在/hints.txt中提示,要得到flag就要先得到cookie_secret。注意到这里显示的内容就是msg的内容,结合题目tornado,猜测是ssti。找到存放cookie_secret的变量handler.settings。下面是cookie_secret的存放位置
2024-01-23 16:52:44
1204
1
原创 [MRCTF2020]你传你呢1
SetHandler application/x-httpd-php #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行。AddHandler php5-script .jpg #在当前目录下,如果匹配到evil.gif文件,则被解析成PHP代码执行。尝试了几次,发现是黑名单过滤,只要包含文件后缀有ph就传不了,同时也有类型检测,需要抓包修改content-type。尝试了上传.htaccess,成功了,可以利用这让服务器将jpg文件当作php来解析,详见。
2024-01-23 15:45:23
593
1
原创 [极客大挑战 2019]PHP1
2.private属性类名和属性名前都会有多一个NULL,phpstorm运行结果可以显示出来,但是复制出去会变成空格,要手动把这两个空格换成%00。看完class.php,明白了要传个序列化的Name变量去反序列化,满足class.php的条件即可获得flag。再看其他源码,index.php 包含了class.php,并且有一个get传参select。里面的flag.php Syc{dog_dog_dog}交上去是错的。提到备份,扫一下目录,发现源码压缩包www.zip。
2024-01-22 15:35:17
466
原创 [极客大挑战 2019]LoveSQL1
查看column,有id,username,password,全部打印出来,找到flag。查看table,一个是geekuser另一个是l0ve1ysq1。注意这里#要使用url编码才能正常注入。万能密码测试,发现注入点。
2024-01-22 13:32:22
450
原创 【CTFSHOW_菜狗杯】Webshell
把Webshell类复制出来,然后改一下要运行的cmd。这里因为题中过滤了flag所以用通配符“*”替代。反序列化,输入字符串经过反序列化实现命令执行。
2024-01-20 23:45:26
683
1
原创 【CTFshow】元旦水友赛easy_include
'1': 'localhost/tmp/sess_ctfshow',#php session以文件形式存储的默认路径,session文件默认命名方式是sess_'PHP_SESSION_UPLOAD_PROGRESS': '
2024-01-20 19:53:18
1654
原创 [极客大挑战 2019]Secret File1
上来就说看不到,先看看源码,发现./Archive_room.php。点secret直接跳到了end,抓包看看,找到了secr3t.php。过滤了很少的关键词,提示flag在flag.php,过去发现还是看不到。尝试用php伪协议读取flag.php的源码。
2024-01-20 11:17:51
422
原创 [RoarCTF 2019]Easy Calc1
注意,这里num本身是不允许输入英文字母的,通过传“ num”,即在num前多加一个空格,实现绕过waf检测,但不影响php代码解析。再用scandir(/f1agg)发现没有内容,这应该不是个目录,而是flag文件,故要读取文件内容。通过传“ num”,即在num前多加一个空格,实现绕过waf检测,但不影响php代码解析。var_dump()、scandir()、file_get_contents()函数的使用。其次通过chr()函数将ASCII码转为对应字符,绕过正则检测。
2024-01-19 20:09:11
377
1
原创 [SUCTF 2019]EasySQL1
构造成select *,1 || flag from Flag,这句相当于select * , 1 from Flag,这样就可以拿到flag和另一列1。但是下一步进行不下去,因为尝试后可以知道flag和from都被过滤,没办法show columns from Flag;根据前面说的非0为1等线索,有大佬猜测sql语句为。输入非0数字都有回显,输入0和其他特殊字符无回显。(注意,语句最后没有‘#’注释也可以正常执行)union、from、sleep被过滤。
2024-01-19 17:05:34
367
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人