Html和css笔记
Html和css的学习笔记:
http://www.imooc.com/learn/9
Html和css的学习笔记:
http://www.imooc.com/learn/9
1 |
|
1 |
|
preg_match函数会对字符串进行正则匹配。
https://www.php.net/manual/zh/function.preg-match.php(有点多,慢慢学吧)
正则匹配:
同时我查到了shell中使用的glob通配符
对于cat被过滤:
以下都可以作为替代:
more:一页一页的显示档案内容
less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容(不是很懂,读出来很奇怪)
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
rev:逆向输出
绕过:
ca$1t:未定义变量默认空值
ca‘’t :‘’空值
‘c”a”t ????’或”c’a’t fl[a]g”
ca``t
似乎还有base64编码和拼接的高阶操作……:http://blog.leanote.com/post/bowu/de8babf67fd8
好像还有别的执行方式
?Rem=?><?=`ls`;
其实直接?Rem=echo%20`ls`;就行……
先结束上面的语句,<?=是echo的快捷用法,输出了`ls`,反引号括出命令执行的语句
<?=可以被禁用,是不是有点……鸡肋
大佬博客:
无字母数字webshell:
https://www.leavesongs.com/PENETRATION/webshell-without-alphanum-advanced.html
https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html
https://www.gem-love.com/websecurity/1407.html#PHP%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C
ctfshow……
题目链接:https://leetcode-cn.com/problems/roman-to-integer/
没啥高级的写法和优化,就单纯循环和判断……既然学了点PHP,就想用PHP写写试试。
1 |
|
eval()将语句以PHP形式执行,其中语句需要符合PHP规范。可以利用eval()执行命令执行代码。
提交a=system(“”);执行系统命令,ls列出文件,cat、tac、more、less、tail、head命令读取文件。实践操作中发现其中一些读不出来,但查看网页源码时可以看见,如:
但是为什么呢……
tac、rev是可用的;
看到show_source(FILE),试了一下,?a=show_source(“f111a9.php”);也可以出答案。
题目链接:https://leetcode-cn.com/problems/palindrome-number/
刚刚做完整数反转,回文数好像也差不多,负数一定不是回文数;整数反转以后等于其本身为回文数。
题目要求一定要有返回值,return NULL。
1 | bool isPalindrome(long long int x){ |
是不是摸鱼了……
题目链接:https://leetcode-cn.com/problems/reverse-integer
记得曾经在洛谷做过,回去翻了下,自己定义了个10000000长度的数组……
先记录数组长度,根据数组长度定义数组,记录各个数对应的位数,再分别乘以10的次方实现反转
1.先回忆了32位的有符号数的概念(有关原码、反码、补码);
2.在给s赋值时,9*10^10赋值出错,单int是不行的:
整型变量int占4个字节,32位,取值范围是-2^31 - 2^31-1 ,也就是(-2147483648) - (2147483647),若溢出则会循环取值,
也就是2147483648溢出后回到了最小负整数-2147483648,2147483649溢出后变成了-2147483648+1=-2147483647;
而对x取绝对值时,给定数据超过了限制,即int x ,改成long long int 从根源上解决问题
3.再学习学习abs(),pow(),sizeof()……
1 | int reverse(long long int x){ |
题目链接:https://leetcode-cn.com/problems/two-sum/
开始回忆几乎快忘完的c语言知识,同时学java……
双循环遍历数组;
看题解,指针没怎么学过,哈希就更不懂了,数据结构……
return数组时,leetcode指定了returnSize分配return的有效内存,不赋值就return报错
1 | int* twoSum(int* nums, int numsSize, int target, int * returnSize){ |
一定有返回值,需要return,不然报错……