背景:尽管登录vps会发邮件,但是会偶出现,登录了又发了一邮件,于是想此时看到底有多少个终端在登录态,还是阿里的alikid触发,还是真有黑客,怎么办,w查看,w tux。
LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务。系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作。
查看用户的操作
系统管理员若想知道某一时刻用户的行为,只需要输入命令w即可,在SHELL终端中输入如下命令:
tux@tux-desktop:~$ w
21:13:14 up 7:08, 2 users, load average: 0.22, 0.32, 0.20
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    37:55   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w

可以看到执行W命令及显示结果。
命令信息含义
上述显示的信息分别表示如下:
第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登陆哟内用户总数及系统平均负载信息。对于上述势力中的几个显示数据意义为:
21:13:14 表示执行W的时间是在晚上9点13分。
7:08 表示系统运行7小时8分。
2 users 表示当前系统登陆用户总数为2。
load average与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。
从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资料。
USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
TTY:用户登陆所用的终端。
FROM:显示用户在何处登陆系统。
LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。
JCPU:一终端代号来区分,表示在摸段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:指WHAT域的任务执行后耗费的CPU时间。
WHAT:表示当前执行的任务。

查看某用户
当登陆系统用户很多的时候,可以在W后面加上某个用户名,则会查看该用户执行任务的情况。
tux@tux-desktop:~$ w tux
21:19:01 up 7:14, 2 users, load average: 0.25, 0.21, 0.18
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    38:05   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w tux

默认情况下,系统会显示上述所有的信息,如果只关心某一方面,可以只使用相关的选项。
linux svn工作空间锁定无法更新的解决方法(Working copy ‘.’ locked)
背景:有人在linux上直接修改文件(可能是debug),但没有提交成功。产生这种情况大多是因为上次svn更新命令执行失败且被自动锁定了。
于是会出现如下情况:
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong
svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
怎么办?

两步解决:
步骤1:
写个脚本批量清,cleanuplocked.sh:
#!/bin/sh
for lk in `find /data/htdocs/justwinit_devel -name "lock"`
do
`rm $lk`
done
exit


步骤二:运行命令svn cleanup:
[root@localhost justwinit_devel]# svn cleanup
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://svn.jackxiang.com:80> Authorization Realm

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
At revision 2736.


参考:http://www.xuebuyuan.com/1112787.html
背景:vim打开代码时候发现空格显示后发现行尾有一堆空格...得删除,在vim配置下可以高亮这些空格,看到后方便删除掉。
让vim显示行尾的空格的配置办法,在/etc/vimrc文件添加如下两行 :
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
match WhitespaceEOL /\t\+/           #匹配tab实践从Windows上传Tab字符上去是OK的。
摘自:http://www.codeweblog.com/%E8%AE%A9vim%E6%98%BE%E7%A4%BA%E7%A9%BA%E6%A0%BC-%E5%8F%8Atab%E5%AD%97%E7%AC%A6-vim-%E5%A4%9A%E8%A1%8C%E6%B3%A8%E9%87%8A/

方法一:vi 删除行尾空格以替换解决掉删除行尾空格,实践OK如下:
行末:$
行首:^
空格:\s

行末空格:\s\+$
行首空格:^\+\s

删除行尾空格:
:%s/\s\+$//

:%s/\s\+$//g   #也成,别少个$就成,否则所有空格全给去了。
http://blog.itpub.net/22661144/viewspace-1433706/

方法二:用插件实现,实践OK,共两步
(1)安装插件到指定目录:
cd /tmp
git clone https://github.com/dongweiming/vary.vim  
mkdir -p /root/.vim/plugin
cd /root/.vim/plugin
mv /tmp/vary.vim/plugin/vary.vim /root/.vim/plugin/
ls /root/.vim/plugin/vary.vim
备注:特别注意,直接wget是不行的,wget https://github.com/dongweiming/vary.vim/blob/master/plugin/vary.vim,这个是网页,不全是源码,要么点上面的RAW,否则得git clone,里面的doc里的内容没有啥实际的功能性用处,不放也行,并不影响使用。
(2)让插件在vim 里配置并生效:
vim /root/.vimrc

实践发现Txt文件不行,不能替换,PHP可以,再就是在/root/.vimrc里包含就直接包含:
if filereadable(expand("~/.vimrc.bundles"))                                                                              
  source ~/.vimrc.bundles
endif

#cat /root/.vimrc.bundles


直接修改插件:
vi /root/.vim/bundle/vary.vim/plugin/vary.vim

VIM调试/root/.vimrc的脚本方法:
vim -D /tmp/jackX.txt

最后两行介绍,在/root/.vimrc下面加两行实现后,实践发现,打开时就自动去行尾空格,在写入前有行尾空格也给自动去了写入:
autocmd BufReadPost * :call StripTrailingWhite()
autocmd BufReadPost * :call RetabIndents()
表示打开文件之前就修改,把修改后的结果呈现给你
成功实践来自网址:http://www.tuicool.com/articles/aQfqUv


三、实践OK之Editplus删除行尾空格:
Editplus的替换查找: \s+$
[V]正则表达式
全部替换


四、RegexBuddy调试之多行尾测试之Whole file改为Line by line:
Match:
\s+$

Test:
psql \  
   --host=127.0.0.1 \  
   --port=5432 \  
   --username kong \  
   --password \  
   --dbname=kongdb

发现只被替换了kongdb后面的空格,怎么办?
在Test下面一行有一个:Whole file改为Line by line即可按多行,也就能看到上面这个六行的行尾给变黄了,也就是被标记成行尾空格了。


四、sublime去行尾空格:
\s+$

(1)具体步骤:
CTRL+H打开replace功能,勾选上左侧的regular expression,并填写
find what栏 : \s+$
replace with栏 : (这行留空)
接着点replace all即可

(2)配置法去行尾空格:
点击菜单栏上的“Preferences”,找到“Setting-Default”,搜索“trim_trailing_white_space_on_save:"trim_trailing_white_space_on_save": true,
http://blog.chinaunix.net/uid-24830931-id-3376798.html
被复制的文件情况:
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
  文件:"seven.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:7878        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800

根据上面的大小8573191 编写代码,writeTest.c:

编译此文件:
[root@iZ25dcp92ckZ multepoolserver]# gcc writeTest.c  -g -o writeTest
[root@iZ25dcp92ckZ multepoolserver]# ./writeTest
对写入的文件进行md5比对:
[root@iZ25dcp92ckZ multepoolserver]# md5sum  sevenCopy.mp4
cf9dc79b01388037577e0a13e261cbe6  sevenCopy.mp4
[root@iZ25dcp92ckZ multepoolserver]# md5sum seven.mp4
cf9dc79b01388037577e0a13e261cbe6  seven.mp4

[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
  文件:"seven.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:7878        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
创建时间:-
[root@iZ25dcp92ckZ multepoolserver]# stat sevenCopy.mp4
  文件:"sevenCopy.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:9791        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:56.458192181 +0800
最近更改:2015-06-22 17:31:45.919756746 +0800
最近改动:2015-06-22 17:31:45.919756746 +0800
创建时间:-


阅读全文
背景:有时看个bin-log的sql语句时间,想看文件的中间,怎么看,文件还挺大的,这儿有个办法,太大上G的这个命令还是有些玄乎,看不了。
Linux查看文件中间行:
从第3000行开始,显示1000行。即显示3000~3999行:
【一】cat filename | tail -n +3000 | head -n 1000
【二】cat filename| head -n 3999 | tail -n +3000
*注意两种方法的顺序
【三】用sed命令
sed -n '3000,3999'p filename 可以只查看文件的第3000行到第3999行。

知识点:
1,tail -n 1000:显示最后1000行
     tail -n +1000:从1000行开始显示,显示1000行以后的
     head -n 1000:显示前面1000行
2,Sed命令是linux下的一个非常有用的命令,
sed -n '2'p filename  打印文件的第二行。
sed -n '1,3'p filename 打印文件的1到3行。
sed -n '/Neave/'p filename 打印匹配Neave的行(模糊匹配)
sed -n '4,/The/'p filename  在第4行查询模式The  
sed -n '1,$'p filename 打印整个文件,$表示最后一行。

摘自 :http://blog.163.com/nancainvmao_bq/blog/static/1065737420131084545205/
背景:从windows上用editplus编写一个文件rz上去后,在make时,出现make: 警告:检测到时钟错误。您的创建可能是不完整的。后面make clean;问题依旧。
引起原因:是因为windows上的文件可以时间比较旧,需要给touch一个新时间,让make认为是很新的文件,即可。
解决办法:
touch multepoolser.c
于是编译就没提示这个问题了。
——————————————————————————————————————————————————————
我在make的时候也出现了同样的问题,不过不是什么大问题,这个不影响编译结果

分析原因可能是:
服务器上的文件最后修改时间比当前时钟要晚

解决办法:
用touch 命令把源程序的时间戳改一下
find . -type f -exec touch {} \;

或者

touch *一下再重新编译

From:http://blog.csdn.net/maopig/article/details/6599660
dd到更大盘后扩大磁盘的命令方法(理论上应该有其它图形gparted工具扩大):https://blog.csdn.net/daicooper/article/details/86150138

用Linux下的dd命令拷贝整张磁盘的方法:
fdisk -l 能看到两块盘,不是分区,如下:
dd if=/dev/sda of=/dev/sdb bs=4096k
fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
iostat -x 1或 iostat -d 2 -m ,    来自:https://jackxiang.com/post/5671/
有120M左右的写入速度,1T = 1000G = 1000000M
1000000/100/3600=2.77小时,实际上不会时刻在100M以上,估计得3个小时。
用orico硬件拷贝可能要快一点, 但感觉不出来快多少,dd命令运行中可以Ctrl+C中断的。



背景:有vps到期后想换一台vps时,其旧的vps的数据是怎么样实现完全删除的哩? 或是怎么处理的,我现在把vps搬到淘宝vps了,有这个问题。兄弟们是怎么使用的dd。如果我想删除: /data/htdocs 是要dd多少次?d27就可以了。
全盘拷贝的命令:
dd if=/dev/sdb  of=/dev/sdc
分区拷贝:
dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=name.img
以上为例:
dd bs=512 count=15002048 if=/dev/sdb of=ghost_linux_latelee.img
由于ghost_linux_latelee.img会很大,可以在拷贝时将其压缩:
dd bs=512 count=15002048 if=/dev/sdb | gzip -9 > ghost_linux_latelee.img.gz
上面所做的,就是传说的系统“备份”,或叫“系统克隆”。
对应的,有系统恢复的操作。命令如下:
dd if=ghost_linux_latelee.img of=/dev/sda
如果是压缩包,则命令为:
gzip -c -d ghost_linux_latelee.img.gz | dd of=/dev/sda
在上面的拷贝过程中,并不知道拷贝了多少,只有最终结束时才显示出时间、拷贝速度。为了查看进度,可以在另一个终端输入(记得用root):
watch -n 5 killall -USR1 dd
(注:killall并不是传说中把进程kill掉,而是发送一个指定的信号到指定的进程)
之后,就能执行dd的终端看到进度了,如:
58299+0 records in58298+0 records out29848576 bytes (30 MB) copied, 4.67728 s, 6.4 MB/s161403+0 records in161402+0 records out82637824 bytes (83 MB) copied, 9.69359 s, 8.5 MB/s238651+0 records in238650+0 records out122188800 bytes (122 MB) copied, 14.7105 s, 8.3 MB/s
备注:
用dd的方式,得到的镜像文件十分庞大——取决于所要做的系统的大小。比如,拷贝4GB的分区,真的就是拷贝4GB,即使是用gzip压缩,也压缩不了多少,文件依然很大。
另外dd的方式也消除了我之前的担心,因为现在的Linux发行版的分区使用硬盘uuid作为标识,而不是/dev/sda1这种格式,据说uuid更好。但用dd拷贝,竟然连硬盘的uuid也一一拷贝,毫无变化,这的确让我吃惊。不过,目前看没什么时间研究dd了。
PS:使用dd命令,可以读取硬盘的mbr扇区,示例如下:
dd if=/dev/sdb of=mbr.bin bs=512 count=1


来自:https://blog.csdn.net/qq_32693119/article/details/79986438阅读全文
字符s,整数d:



printf格式输出:%[flags][width][.perc][F|N|h|l]type
用到了flags中的 0 (注意是零不是欧) ,其百科描述为:将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)
width 即表示需要输出的位数。



也可以用 * 代替位数,在后面的参数列表中用变量控制输出位数;


来自:http://blog.chinaunix.net/uid-26295753-id-2981750.html
背景:试着在centos7里调试一下c程序,出现,Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.26-17.el7.x86_64 glibc-2.17-78.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.12.2-14.el7.x86_64 libcom_err-1.42.9-7.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.3-9.el7.x86_64 nss-softokn-freebl-3.16.2.3-9.el7.x86_64 openssl-libs-1.0.1e-42.el7.4.x86_64 xz-libs-5.1.2-9alpha.el7.x86_64

问题:
Missing separate debuginfos, use: debuginfo-install glib
解决方法:
在CentOS6.5上用gdb调试时提示Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.i686

实践如下过程:
uname -rsp
Linux 3.10.0-229.1.2.el7.x86_64 x86_64

http://debuginfo.centos.org/7/x86_64/
(例如本机uname -r 3.10.0-229.1.2 只能选 kernel-debuginfo-3.10.0-229.1.2.el7.x86_64.rpm kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm


安装debuginfo
rpm -ivh kernel-debuginfo-3.10.0-229.1.2.el7.x86_64.rpm
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm

配置yum源
or this to work, you need to have the debuginfo repository defined. For CentOS 5, put the following in /etc/yum.repos.d/CentOS-Base-debuginfo.repo:
[base-debuginfo] name=CentOS-$releasever - DebugInfo baseurl=http://debuginfo.centos.org/$releasever/$basearch/ gpgcheck=0
enabled=0
protect=1
priority=1

利用debuginfo-install安装glibc
debuginfo-install glibc

注意事项
安装debuginfo 去http://debuginfo.centos.org寻找和你内核完全匹配的rpm包。


详细:http://jingyan.baidu.com/article/37bce2be1839ca1003f3a253.html

————————————————————————————————————
自己实践如下:
rpm -ihv kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm
警告:kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID b6792c39: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kernel-debuginfo-common-x86_64-3.################################# [100%]

rpm -ihv   kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm  
警告:kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID b6792c39: NOKEY
准备中...                          ################################# [100%]
        软件包 kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64 已经安装

再安装:
debuginfo-install cyrus-sasl-lib-2.1.26-17.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.12.2-14.el7.x86_64 libcom_err-1.42.9-7.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.3-9.el7.x86_64 openssl-libs-1.0.1e-42.el7.4.x86_64 xz-libs-5.1.2-9alpha.el7.x86_64
背景:多个文件时设置断点时,可以在断点后指定文件名加函数,也可指定文件名加行号,还可以断点后跟偏移量,摘录下其他网站的。
设置断点:

——————————————————————————————————————————————————————————
     (gdb) break 断点

     程序运行后,到达断点就会自动暂停运行。此时就可以查看该时刻的变量值,显示栈针,重新设置断点或者重新运行等。

     断点可以通过函数名,文件内的行号来设置,也可以先指定文件名再指定行号,还可以指定与暂停位置的偏移量,或者用地址来设置。

     (gdb) break 函数名

     (gdb) break 行号

     (gdb) break 文件名:行号

     (gdb) break 文件名:函数名

     (gdb) break +偏移量

     (gdb) break -偏移量

     (gdb) break *地址

     在设置断点的时候,如果不指定断点位置,就在下一行代码上设置断点。    


     条件断点

     (gdb) break 断点 if 条件

     仅在特定条件下中断。对于已存在的断点,可使用condition为其添加条件。

     (gdb) break 断点编号 条件

     而删除指定编号断点的触发条件同样使用condition。

     (gdb) condition 断点编号

阅读全文
每次在电脑上安装支付宝安全控件时,默认都会强行安装与运行TaobaoProtect这个进程(如图)。电脑上装了这个程序以后,在我玩游戏时它总是会令我正在运行的程序自动跳出,使游戏最小化到任务栏上。令我感觉特别烦人!特别受骚扰!可是在淘宝上购物不安装支付宝又不行。最可恶的是购物以后我将支付宝安全控件卸载了然而这个该死的TaobaoProtect进程依然存在。阿里旺旺怎么净干这磋事啊?谁有办法禁用这个该死的进程啊?

1)首先删除C:\Users\“用户名”\AppData\Roaming\TaobaoProtect下的TaobaoProtect.exe和TaobaoProtectSE.dll。然后新建一个txt文件,重命名为TaobaoProtect.exe,右键属性设置只读打勾。目前最完美的解决方案了。

2)如果删除不掉有程序在使用怎么办,unlock来解锁:
http://www.anxz.com/down/1600.html
Git分支模型及版本控制:
https://github.com/wmzhai/advanced-git-topic/blob/master/branching-model.md
extensions.firebug.console.logLimit 配置的。

Firebug's log limit has been reached. %S entries not shown. Firebug 的日志已达上限。 %S 条目没有显示。 建议: Firebug 的日志已达上限。
来自:https://www.cnblogs.com/Eivll0m/p/4921829.html

一)他怎么知道缓存在那个目录呢?
You can add a line in wp-config.php like below:
define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/var/run/nginx-cache');

root@101.200.228.135:/data/htdocs/jackxiang.com# grep -r "RT_WP_NGINX_HELPER_CACHE_PATH" ./
./wp-content/plugins/nginx-helper/nginx-helper.php:        define('RT_WP_NGINX_HELPER_CACHE_PATH', '/var/run/nginx-cache');
./wp-content/plugins/nginx-helper/purger.php:                   if (!defined('RT_WP_NGINX_HELPER_CACHE_PATH')) {
./wp-content/plugins/nginx-helper/readme.txt:`define('RT_WP_NGINX_HELPER_CACHE_PATH','/var/run/nginx-cache/');`

vim打开上面文件替换:
%s/\/var\/run\/nginx-cache/\/data\/cache\/ngx_fcgi_cache2/g
二)总配置:/conf/nginx.conf


三)分配置:/conf/vhost/jackxiang.conf 阅读全文
wget -c http://www.itkb.ro/userfiles/file/libiconv-glibc-2.16.patch.gz
cd libiconv-1.14/srclib
patch -p1 stdio.in.h
俺运行patch后好久都没有反应 :( 最后人肉修改
这个补丁的内容如上,用unzip包解压后rz上CentOS7上去,修改成下面这样:
/data/software/libiconv-1.14/srclib/stdio.in.h


参考来自:http://forum.z27315.com/topic/15662-%E8%A7%A3%E5%86%B3%E7%BC%96%E8%AF%91libiconv%E6%97%B6%E7%9A%84gets-undeclared-here%E9%94%99%E8%AF%AF/
背景:开发web程序来讲,凡是用户输入都不可信的原则,加强web应用的安全性培训笔记,主要是有这个安全的意识至关重要,形成梯队、纵深、层层防御体系至关重要。

1=1注入,主要是输入过滤:
数字型:?ID=120 and 1=1
字符型:单引号保障其完整性,闭合,形成完整查询。
搜索型:模糊搜索,like,test=adb%abc%。

信息泄漏
拖库
执行恶意代码获取administrator。
如何杜绝sql inject:参数化,检测非法字符,安全api。

身份认证,会话管理(放服务器验证别放前台)。
提升用户不存在,密码错误(弱密码)。撞库。
验证码饶过:网站回退,验证码名称和图片名一致;把验证码放session验证。

xss攻击:网站用户。输入js代码盗取cookie。javascript 尖括号过滤。跨站脚本主要是对用户的攻击,对服务器没有用。

越权漏洞:我可以修改你的资料。
春秋航空,update?id=xxx xxx变yyy。
垂直越权:访问更高级别的用户权限。
test 访问到了管理界面,发现按钮是灰色,F12 直接修改去disable,可点击,后没添加按钮,div disable=none,打开后就可以修改了(输入必填项),成功后再次登录,成功越权。

不安全的直接对象引用(xia z):
任意文件引用~下载路径:.. 上一路径。
查看到系统的路径,网站源码。修复:只让输入.xml的,下源码%00终结符号:password=a.php%00download.xml
Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
影响版本:
nginx 0.5.*
nginx 0.6.*
nginx 0.7 <= 0.7.65
nginx 0.8 <= 0.8.37

而新漏洞的利用方式是:
/test.jpg%00.php
对应fastcgi_script_name的匹配正则,我们会发现是匹不到这个漏洞的,所以非常杯具,以前被老nginx漏洞黑过的肉鸡还能被重新黑一次。
一般这个漏洞需要在能够上传文件的应用中才能被利用,所以论坛首当其冲,象discuz论坛的两个文件就能非常方便的识别这个漏洞。
解决方法:升级Nginx
摘录自:http://www.unhonker.com/bug/153.html
——————————————————————————————————————————————————————————————————
重定向漏洞:
redirect 检验refer。

上传漏洞:
只前台校验后缀。
可以用工具干掉那块校验的js,截包工具,fiddler2,再查查。传shell啥的,控制主机。

未验证的访问重定向:
?url=http://api.开放平台网址.cn/gettoken?code=xxxx  对跳转地址输入处(浏览器参数)做验证(用户填写的申请的网站回调获取code的url地址),其它地址不让他跳转。
分页: 25/40 第一页 上页 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 下页 最后页 [ 显示模式: 摘要 | 列表 ]